How can I determine the number of digits after the decimal point?

108 ビュー (過去 30 日間)
Iddo Weiner
Iddo Weiner 2015 年 3 月 14 日
コメント済み: Iddo Weiner 2015 年 3 月 15 日
Hi,
I am looking for a function that takes:
1. a matrix with different kinds of numbers - some are whole numbers (7), some have 1 number after the decimal point (12.3), some have 2 numbers (12.56) and so on...
2. some kind of instruction as to how many numbers after the decimal point I want
Example:
N=[7 12.3 4.78 5.505]
Let's say I want N to contain numbers with only 1 digit after the decimal point.
Is there a way to receive:
[N]=Some_Function(N,'1 digit')
N=[7.0 12.3 4.8 5.5] % meaning - round the numbers so they have only 1 number after the point
Or even (obviously not as good, but can provide a starting point):
N=[7 12.3 4.7 5.5] % meaning - just cut all numbers after the point with indexes greater than 1
Hope the question was clear,
Thanks to all in advance
Iddo

採用された回答

Mark Hayworth
Mark Hayworth 2015 年 3 月 14 日
You can use the round() function to round a number to the specified number of places (though way out at the umpteenth place it might be non-zero, as per the FAQ.
out = round(yourNumber, 1);
  1 件のコメント
Iddo Weiner
Iddo Weiner 2015 年 3 月 15 日
Thank you very much - this was exactly what I needed Iddo

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2015 年 3 月 14 日
The number of digits is the same. If you're using double class variables (the default), all use 64 bits of precision. How many digits are after the decimal place depends on how many digits are to the left of it. See the code example in the FAQ http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F which explains perfectly your situation.
  1 件のコメント
Iddo Weiner
Iddo Weiner 2015 年 3 月 14 日
So, tell me if I understand you correctly, you're saying that what I want to do cannot be done, by default?

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

Community Treasure Hunt

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

Start Hunting!

Translated by