我正在读取字符串值,并尝试通过此方法确认其值为货币值
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位小数的值。我可以做些什么改变,我也使用正确的方法进行验证?
答案 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”表示格式化引擎这是一个带有两个小数位的浮点数。您可以改为使用“#:##”。
另一个是:
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)));