验证并在2位小数处打印双精度值

时间:2016-05-30 16:50:07

标签: c# winforms

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

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位小数的值。我可以做些什么改变,我也使用正确的方法进行验证?

3 个答案:

答案 0 :(得分:2)

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

虽然print df[0:3].ix['John'] 会将值四舍五入到两位小数,但如果舍入值为1.00或1.50(例如),它将显示为“1”或“1.5”,因为默认情况下省略了尾随零

如果要将值显示为2位小数,则有多种方法可以执行此操作。所有这些都要求您拨打Math.Round(value, 2)或使用格式参数明确调用string.Format

一个是使用:

.ToString

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

Source

另一个是:

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

哪个是定点格式说明符。添加数字指定小数位数(默认值为2)。 Source

鉴于你说你的代码“这样可以正常工作”。那么你的验证步骤是正确的。您正在检查该值是否为数字,并且舍入到2位小数的值是您想要的值。你无需做任何事情。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

只需使用代码

即可

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