我有兩個值,一個來自用戶輸入,另一個來自DB。Float/Float =奇怪的結果
var userinput = form["someInput"];
var valuefromDB = GetValue(someNumber);
public float? GetValue(int id){
return (float?) db.table.where(p=> p.id == id).select(p=> p.Value).SingleOrDefault();
}
userinput的值爲字符串「1」,而valuefromDB的值爲0.001浮點值。
所以1/0.001 = 1000
但我的C#代碼給我999.999939作爲結果;
var final = float.Parse(userinput)/valuefromDB
當我有「2」作爲用戶輸入值,結果是正確的,2000 ...
這是float精度的結果。 – Candide
每個程序員都應該理解浮點數:http://en.wikipedia.org/wiki/Floating_point#IEEE_754:_floating_point_in_modern_computers – mellamokb
你需要10點精度還是需要2點精度? –