繁体   English   中英

Double.Parse精度/舍入问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM