how convert fraction into integer?
显示 更早的评论
hi, how convert fraction part into integer :
30.6789 to 6789
thanks
回答(2 个)
Jonathan Sullivan
2012-1-11
Looks like you want to round to the nearest 0.001. You can do this with the following:
x = 30.6789 % Or whatever your data is
base = 0.001; % Or whatever you are rounding too.
x_rounded = round(x./base).*base;
Hope this helps!
2 个评论
huda nawaf
2012-1-11
Walter Roberson
2012-1-11
The fraction you are looking for would have to be in base 10, but in base 10 it would be inappropriate to work at the *bit* level; instead you would have to work at the *dit* level (though the proper name for a "dit" is a "ban"; http://en.wikipedia.org/wiki/Ban_%28information%29)
Mixing base 10 and base 2 needs to be done very carefully!
Image Analyst
2012-1-11
How about this:
a=30.6789;
out = (a - floor(a)) * 10000
You do need the base, for example 10000. Why? Because the fraction never ends as I'm sure you know because you've read the FAQ. Want proof? Check this out:
format long;
a % Display it. It won't be 30.6789!
>> a =
30.678899999999999
So that's why you have to pick some number of decimal places.
1 个评论
Walter Roberson
2012-1-11
For the benefit of those who might not have read the referenced FAQ,
http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!