How to use the small positive float number?
2 次查看(过去 30 天)
显示 更早的评论
Hi everyone
I am writing the code in which I need to deal with quite small number like
A = (1/2^8)^512
When I run this line, matlab gives back 0 as the results. However, I need this number to be multiplied with other big numbers.
How can I save the real value of variable A?
Many thanks,
Regards
0 个评论
回答(1 个)
Guillaume
2015-5-15
编辑:Guillaume
2015-5-15
In plain matlab, you cannot represent such a number as it's way outside the range that a double can represent. The exponent part of a double is 11 bits, offset by 1023, so the minimum number that can be represented by a double is around 2^-1023 (the true minimum is 2^-1074), your number is 2^-4096!
You would have to use vpa from the Symbolic math toolbox (I know nothing about it, I don't have it), or go through Java's BigDecimal, or look through the file exchange for an arbitrary precision type.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!