uj5u.com熱心網友回復:
x == (int)(float) x; 不是總對, 比如, x=123456789; 轉成float會丟失精度x == (int)(double)x; 這個可以, double的精度可以保證最大的int精度也不丟
f == float double f; 這個不會丟精度,也可以
d == (float)d 有可能會丟失精度,也會超出float范圍的也出錯
2/3 = 2/3.0 什么時候都是錯的
d<0. d*2.0<0 也不是絕對成立, d*2超出double范圍就不對了
d*d 同樣會越界
(d+f)-d == f 同樣也會因為精度的問題不絕對成立
大部分都不能保證絕對成立
uj5u.com熱心網友回復:
d*d越界會改變符號嗎?uj5u.com熱心網友回復:
d*d越界之后是inf, 還和0比較有意義嗎uj5u.com熱心網友回復:
inf是不是不能作為浮點數比較的引數
uj5u.com熱心網友回復:
查了一下資料INF是無窮大,可以和0比較, 還是成立的
d*d >= 0 是成立的
另外一個特殊的數NAN是不能和其他有效數字做比較的,如果做了就會拋出例外
uj5u.com熱心網友回復:
d<0, d*2 <0 同理也是對的越界后是-INF, 可以和0比較
uj5u.com熱心網友回復:
好的,我明白了,謝謝你uj5u.com熱心網友回復:
太感謝你了,剛學浮點數表示不怎么明白轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/156935.html
標籤:其它技術問題
上一篇:求大佬幫忙
下一篇:關于c,c++,java的學習
