Hello!
How come is realmax + 1 not inifity when typed into command window?
Thank you.

 採用された回答

Stephen23
Stephen23 2019 年 4 月 11 日
編集済み: Stephen23 2019 年 4 月 11 日

3 投票

Because the value 1 is nowhere near the smallest value that can be added to realmax to create a new value. You would need to add a value that is more than half the difference between representable values around the magnitude of realmax. To get that value try using eps:
>> val = eps(realmax) % much bigger than 1.
val = 1.9958e+292
>> realmax + val/2
ans = Inf
>> realmax + val/3
ans = 1.7977e+308
This is exactly the same as if you add 1e-300 to 10: the answer is 10, because 1e-300 is nowhere near the difference in representable values around the magnitude 10, so adding 1e-300 makes absolutely no difference to the 10.

1 件のコメント

Jan
Jan 2019 年 4 月 11 日
Thanks Stephen, I've overseen teh "not" in the question.

サインインしてコメントする。

その他の回答 (1 件)

Steven Lord
Steven Lord 2019 年 4 月 11 日

1 投票

If you handed Bill Gates or Scrooge McDuck a $1 bill, it doesn't change what he'll report for his net worth. A single dollar is negligible compared to how much money he has already.
Similarly, if you add 1 to realmax it doesn't change the value since 1 is negligible compared to realmax. If you want to know how much you'd need to add to realmax to make it not negligible, take a look at the eps function.

カテゴリ

ヘルプ センター および File ExchangeNumeric Types についてさらに検索

質問済み:

2019 年 4 月 11 日

コメント済み:

Jan
2019 年 4 月 11 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by