浮點數比較大小的時候不能直接用等號

2022-03-12 02:40:41 字數 374 閱讀 2475

例如下面的例子:

如果你要使用程式比較(0.2+0.1)與0.3的大小的時候,會發現他們不相等的,通過輸出0.2+0.1的結果發現:0.2+0.1=0.30000000000000004

因此,0.2+0.1就不等於0.3了,因此在程式中遇到類似的問題只能按照精度進行比較:

1

public

class

main

7 }

上面的程式的執行結果如下:

0.2 + 0.1=0.30000000000000004

false

true

到此為止,我們以後再遇到類似於比較浮點數數值大小問題的時候,就不能直接用等號比較大小了。

浮點數比較大小

在數 算當中經常會涉及到判斷兩個數是否相等的情況 對於整數很好處理 a b這樣的乙個語句就可以 解決全部的問題 但是對於浮點數是不同的 首先,浮點數在計算機當中的二進位制表達方式就決定了大多數浮點數都是無法精確的表達的 現在的計算機大部分都是 數字計算機,不是模擬機,數字機的離散化的資料表示方法自然...

浮點數比較大小

浮點數比較大小,由於精度問題,所以直接比較有時可能會出錯。單精度數7位有效數字。float 雙精度數16位有效數字。double 單精度數的尾數用23位儲存,加上預設的小數點前的1位1,2 23 1 16777216。因為 10 7 16777216 10 8,所以說單精度浮點數的有效位數是7位。雙...

PHP浮點數比較大小

php 比較運算子用於比較兩個值 數字或字串 等於 x y 如果 x 等於 y,則返回 true。全等 完全相同 x y 如果 x 等於 y,且它們型別相同,則返回 true。a 0.58 100 b 58 var dump a 輸出 float 58 var dump b 輸出 int 58 va...