0
Floats
和Doubles
表示近似數值數據值。由於這個原因,我們無法在where
的原因上比較它們,就像我們對其他數據類型所做的那樣。在MySQL中比較浮點數?
有沒有,如果我比雙與浮子這樣CAST(column_name as CHAR) = CAST(@value as CHAR)
任何缺點是有一個原因,MySQL的網站建議使用ABS(a - b) <= some value
Floats
和Doubles
表示近似數值數據值。由於這個原因,我們無法在where
的原因上比較它們,就像我們對其他數據類型所做的那樣。在MySQL中比較浮點數?
有沒有,如果我比雙與浮子這樣CAST(column_name as CHAR) = CAST(@value as CHAR)
任何缺點是有一個原因,MySQL的網站建議使用ABS(a - b) <= some value
也許這個簡單的例子可以總結與CHAR問題...
SELECT CAST(2 AS CHAR) > CAST(11 AS CHAR);
+------------------------------------+
| CAST(2 AS CHAR) > CAST(11 AS CHAR) |
+------------------------------------+
| 1 |
+------------------------------------+
1 row in set (0.31 sec)
的mysql>
一般來說,如果你想要做這種比較,那麼你可能不該」不要使用FLOATS或DOUBLES – Strawberry
@Strawberry我知道小數是首選。我只需要使用浮動/雙打。 – MATH000
@ MATH000不確定你正在使用什麼網站資源,但我不知道在MySQL中有兩個參數的ABS函數。你通常會做'ABS(a - b)<=某個值'。至於使用該公式的原因,「某個值」通常稱爲「公差值」。將其視爲比較中可接受的差異水平。如果它是0.001,那麼比較兩個浮點數將返回真值,如果差值在千分之一以內。 –