[英]Double.Parse precision/Rounding issue
我在数据库中有一列具有数据类型
十进制(24,10)
假设我有这样的价值
字符串d1 =“ 123.6666666666”;
Double.Parse(d1)
在datacolumn中输出 :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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.