在MSSQL中,
COST_C (float)
在模型中,
[DisplayFormat(DataFormatString = "{0:0,0}", ApplyFormatInEditMode = true)]
public double COST_C { get; set; }
在视野中,
<input name="COST_C" class="form-control" value="@ViewBag.costC" />
在控制器中,
ViewBag.costC = Convert.ToDecimal(project.COST_);
在控制器中更新COST_C时,更新后页面上的值变得不同.....
1000.00变为1000
1000.20成为1000.20001220703
1000.18变为1000.17999267578
我怎样才能确切地说它是什么?
答案 0 :(得分:0)
这是浮点的一般问题。您的价值的准确性取决于您的号码的大小。如果你有一个大数字,你不能可靠地表示小数位的高精度。数据类型本身是有限的,不能表达每个数字。
如果它是您的选项(并且您确实需要这种准确性),您可以将小数位分隔到新的浮点变量中以获得更高的准确度。
如果您只想显示正确的值,可以将值设置为%.2f
,但您可能需要预先对值进行舍入。你仍然不是100%准确。