數值字串轉換成浮點數 (Bing Image Creator)
本文主要提醒程式設計師,處理判別式時,遇到浮點數不要用 == 或是 != 來判別條件,它很容易因為編譯器或平台的差異造成不同結果,主要是 string 轉換成 IEEE-754,1985 格式難以正確轉換,會有些許誤差,例如 "3.03" 轉換後可能變成 3.0300000000000002。
如果非比較相等不可時, C++ 可以
NumberUtil::areEqual(x, y, std::numeric_limits<double>::epsilon())
沒有留言:
張貼留言