how to change an integer to a natural number

6 ビュー (過去 30 日間)
imene. B
imene. B 2016 年 7 月 18 日
コメント済み: imene. B 2016 年 7 月 18 日
hi all, i have a function answer witch is an integer number, but i want to ignore the numbers after the coma and to take the natural part, how to do that ?
Thanks.
  2 件のコメント
James Tursa
James Tursa 2016 年 7 月 18 日
Please show a specific example of the input and desired output.
imene. B
imene. B 2016 年 7 月 18 日
thank you,
for example 8.7 , and i want just to take 8 .

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2016 年 7 月 18 日
You need either floor() or fix() . The two differ in their handling of negative values. floor(-8.7) would be -9, and fix(-8.7) would be -8
  1 件のコメント
imene. B
imene. B 2016 年 7 月 18 日
thank you :D ! it worked floor(8.7) gives 8 thank you !

サインインしてコメントする。

その他の回答 (1 件)

John D'Errico
John D'Errico 2016 年 7 月 18 日
編集済み: John D'Errico 2016 年 7 月 18 日
An integer already IS a natural number.
https://en.wikipedia.org/wiki/Natural_number
So, WOW! You already did what you wanted.
If you are seeing multiple zeros AFTER the decimal place reported, then your number is not in fact an integer. Actually, you must have some floating point trash in there, that causes MATLAB to show those zeros.
N = 1 + eps
N =
1.000000000000000
As you can see, MATLAB knows that it is not really exactly 1. It reports all those sparse zeros, because MATLAB see trash out there past the digits that it reports.
N == 1
ans =
0
Now lets use round.
N = round(N)
N =
1
So, now N really, truly is an integer, a natural number. MATLAB knows that, and displays it with no trailing zeros.
N == 1
ans =
1
  3 件のコメント
John D'Errico
John D'Errico 2016 年 7 月 18 日
floor(8.7) == 8
imene. B
imene. B 2016 年 7 月 18 日
indeed, thank you john

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by