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