繁体   English   中英

验证并打印小数点后两位的double值

[英]Verify and print double value in 2 decimal places

我正在读取一个字符串值,并尝试通过此方法确认其值是货币值

double value;
if (!double.TryParse(sumValue, out value) || Math.Round(value, 2) != value)
{
    MessageBox.Show("Not a double value");
}

这很好。 当我使用此MessageBox.Show(Math.Round(value, 2))该问题未在2个小数位后显示该值。 我可以为此做哪些更改,我是否也在使用正确的方法进行验证?

值的输出方式取决于实际值。

虽然Math.Round(value, 2)会将值四舍五入到小数点后两位,但如果舍入后的值是1.00或1.50(例如),则默认显示为尾随零,它将显示为“ 1”或“ 1.5” 。

如果要将值显示为小数点后两位,则有多种方法可以执行此操作。 所有这些都要求您调用string.Format或使用format参数显式调用.ToString

一种是使用:

MessageBox.Show(String.Format("{0:0.00}", value));

第一个“ 0”代表数字本身,而“ 0.00”则向格式化引擎指示这是一个带有两位小数的浮点数。 您可以改用“#:##”。

资源

另一个是:

MessageBox.Show(value.ToString("F"));

这是定点格式说明符。 加一个数字指定小数位数(默认为2)。 资源

假设您说自己的代码“效果很好”。 那么您的验证步骤是正确的。 您正在检查该值是一个数字,并且该值四舍五入到小数点后两位是您想要的值。 您无需做其他任何事情。

您可以尝试使用具有自定义格式的.ToString()方法,如下所示:

value.ToString("#.##");

只需使用代码

MessageBox.Show(Convert.ToString(Math.Round(value,2)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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