2013-11-20 93 views
1

我目前在mySQL數據庫中有一個十進制(24,16)行;但是當我將數據保存到它時;它改變了我放入的價值。目前爲止,我現在可以看到;小數我需要最大爲16MySQL十進制(24,16)產生奇怪的結果

一個例子:

  • 我把:5.96666666666667
  • 當我檢索數據返回5.96666666666666995

這是否有道理?我需要以mySQL處理這種方式找到答案;或者我應該看看我的代碼(Magento - 但它已完全適應處理超過4位小數,我需要弄清楚如何使數據庫處理它)

我知道這不是一個非常具體問題代碼明智,但我只是想繞過這個問題:-)

感謝您指出我在正確的方向!

+0

是SQL Query的輸出還是讓你在PHP中運行? –

+1

我懷疑你的定點值是在你的應用程序之外的某個地方被轉換爲一個浮點值。如果您依賴於精確的值,那麼您的應用程序將不得不使用對定點數據敏感的數據類型(因爲Magento使用非常鬆散類型的PHP進行編碼,您可能必須將其值視爲字符串)。 – eggyal

+0

它由Magento輸出。我會在明天進行調查,看看是否可以找出轉換髮生的位置,然後回到此處。 –

回答

1

我設法得到了它的底部。如前所述,MySQL行的數據類型沒有問題。我設法追溯到Magento(確切的代碼位置未知)。

當我對相似的設置進行計算時;它一切正常,所以看起來// @ eggyal的建議是正確的。

所以,如果你正在尋找一種方式讓Magento工作超過4位小數;我建議你停止嘗試;)