Calculation Error sum float
显示 更早的评论
I Write This Code:
clc;
clear;
format long
a=1;
for n=1:1:100
a=a+.1;
end
a
and answer is:
a =
10.999999999999979
!!!!! Why not: a= 11
How I Can Solve it?
1 个评论
James Tursa
2014-5-16
See Azzi's link below. But for your particular case this is the decimal equivalent of the closest number to 0.1 in IEEE double format:
>> num2strexact(0.1)
ans =
0.1000000000000000055511151231257827021181583404541015625
You can find num2strexact here:
回答(1 个)
Azzi Abdelmalek
2014-5-16
1 个投票
2 个评论
Maha dasra
2014-5-16
José-Luis
2014-5-16
- Use a computer that doesn't use the binary system. There are a few such strange base 10 machines out there.
- Try variable precision arithmetic. Either with the symbolic toolbox or the excellent vpa from the file exchange.
类别
在 帮助中心 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!