Double.Parse精度/舍入问题

时间:2016-10-24 16:51:50

标签: c# .net sql-server

我在数据库中有一个数据类型为

的列
  

十进制(24,10)

假设我有像

这样的价值
  

string d1 =" 123.6666666666&#34 ;;

Double.Parse(d1) 
数据列中的

输出:123.6666666700

我使用了Convert.ToDecimal(d1),输出 123.6666666666

  

预期产量:123.7000000000

1 个答案:

答案 0 :(得分:2)

您获得的输出是因为double和decimal值的精度。您实际想要的是将数字四舍五入为1位数,因为您必须使用Math.Round,根据您的需要使用double或decimal,如下所示:

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