将文本框的值转换为Convert.ToSingle()
时,会为2.7到2.7999999523162842之类的值添加一些额外的精度。我不希望任何舍入此值,因为我必须将用户输入的确切值存储到DB。因此,如果任何人有此问题,请发布解决方案,任何帮助将不胜感激。
答案 0 :(得分:3)
这是因为float
是binary fraction,它不能完全代表数字2.7 - 当您尝试将不是二进制分数的数字分配给{{1}时或者float
,你将不可避免地得到一个不精确的代表。
如果您不想精确表示像2.7这样的十进制数字,则需要使用decimal
。
double
很明显,要将此值存储在sql server数据库中,您需要使用能够存储精确十进制数字的SQL数据类型。顺便提一下,这种数据类型在SQL中也称为decimal