how convert fraction into integer?
Ältere Kommentare anzeigen
hi, how convert fraction part into integer :
30.6789 to 6789
thanks
Antworten (2)
Jonathan Sullivan
am 11 Jan. 2012
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 Kommentare
huda nawaf
am 11 Jan. 2012
Walter Roberson
am 11 Jan. 2012
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
am 11 Jan. 2012
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 Kommentar
Walter Roberson
am 11 Jan. 2012
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
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!