我有两个值,一个来自用户输入,另一个来自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点精度? –