Why do I get zero?
2 次查看(过去 30 天)
显示 更早的评论
Running 7.10.0 (R2010a) under Windows 7 on an Intel i5 (Lenovo laptop):
K>> TAhi
TAhi = -8.6578e+009
K>> TAlo
TAlo = -8.6578e+009
K>> TAhi/2.0 - TAlo/2.0
ans = 9.5367e-007
K>> (TAhi+TAlo)/2.0 - TAlo
ans = 0
Why do I get 0 when I should get 9.5367e-007 ? I wouldn't image e-007 is anywhere near machine tolerance.
Any help is appreciated!
0 个评论
采纳的回答
Nirmal Gunaseelan
2011-6-24
The next highest floating point number representable relative to the current number is probably the issue here. Please read further at EPS documentation page.
0 个评论
更多回答(2 个)
Fangjun Jiang
2011-6-24
Maybe you can type in the following command and then do your calculation again to see the difference
format long
0 个评论
David Young
2011-6-24
(TAhi-TAlo)/TAhi is close to machine precision, and it's this relative size that matters when comparing two almost equal numbers.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!