我在数据库中有一个数据类型为 decimal(24,10) 的列。
假设我有一个值:
string d1 = "123.6666666666";
Double.Parse(d1)
数据列中的输出:123.6666666700
我使用了Convert.ToDecimal(d1)
,其输出为123.6666666666。
期望输出:123.7000000000
我在数据库中有一个数据类型为 decimal(24,10) 的列。
假设我有一个值:
string d1 = "123.6666666666";
Double.Parse(d1)
数据列中的输出:123.6666666700
我使用了Convert.ToDecimal(d1)
,其输出为123.6666666666。
期望输出:123.7000000000
您得到的输出是由于双精度和十进制值的精度。您实际想要的是将数字四舍五入到1个小数位,为此,您必须使用Math.Round,根据您的需求选择双精度或十进制,像这样:
Math.Round(Double.Parse(d1),1)
Math.Round(Convert.ToDecimal(d1),1)
如果您需要了解更多关于Math.Round的信息,请查看MSDN链接:https://msdn.microsoft.com/pt-br/library/75ks3aby(v=vs.110).aspx