0
我使用實體框架和mysql作爲後端。將浮點值插入到mysql數據庫不一致性
我有一個實體,它有lat和long類型的float。
假設值是緯度:45.50818長:-73.55409
在數據庫DB中的值插入後緯度:45.508183和 長:-73.554092
在分貝類型是浮動(10,6)
額外的3和2來自哪裏?
此外,當我查詢數據庫的我的實體包含正確的緯度/長...
任何幫助表示讚賞,
謝謝
我使用實體框架和mysql作爲後端。將浮點值插入到mysql數據庫不一致性
我有一個實體,它有lat和long類型的float。
假設值是緯度:45.50818長:-73.55409
在數據庫DB中的值插入後緯度:45.508183和 長:-73.554092
在分貝類型是浮動(10,6)
額外的3和2來自哪裏?
此外,當我查詢數據庫的我的實體包含正確的緯度/長...
任何幫助表示讚賞,
謝謝
你應該使用十進制數據類型,而不是
decimal(10,6)
Flaoting point numbers只是近似數字。定義float(10,6)
意味着您只能存儲該精度,但該精度之後該數字可能不準確。定點數字沒有這個問題。
會嘗試,但你知道背後的原因? – pdiddy
請注意,'decimal'也是一個浮點類型。實際上浮點數不是「只有近似數字」 - 而是他們不能準確地表示每個可能的數字*,特別是*二進制*浮點數不能準確地表示某些「簡單」數字,例如0.1。 –
簡單來說,十進制值是精確的。浮動不是。當精度不重要時,浮點允許不精確和更快的計算。 http://stackoverflow.com/questions/618535/what-is-the-difference-between-decimal-float-and-double-in-c – xQbert