我正在读取一个字符串值并尝试通过此方法确认其值及其货币值
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))
时出现问题,它不显示小数点后两位的值。我可以为此做哪些改变,我是否使用了正确的方法来验证?
最佳答案
如何输出值将取决于实际值。
虽然 Math.Round(value, 2)
会将值四舍五入到小数点后两位,但如果四舍五入后的值是 1.00 或 1.50(例如),它将显示为“1”或“1.5",因为默认情况下省略尾随零。
如果您想将值显示到小数点后两位,那么有多种方法可以做到这一点。所有这些都要求您调用 string.Format
或使用格式参数显式调用 .ToString
。
一种是使用:
MessageBox.Show(String.Format("{0:0.00}", value));
第一个“0”代表数字本身,“0.00”向格式化引擎表明这是一个带两位小数的 float 。您可以使用“#:##”代替。
另一个是:
MessageBox.Show(value.ToString("F"));
这是定点格式说明符。添加一个数字指定小数位数(默认为 2)。 Source
假设您说您的代码“工作正常”。那么您的验证步骤是正确的。您正在检查该值是否为数字,并且四舍五入到小数点后 2 位的值是否是您想要的值。您无需再做任何事情。
关于c# - 验证并打印小数点后两位的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530485/