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

标签 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)) 时出现问题,它不显示小数点后两位的值。我可以为此做哪些改变,我是否使用了正确的方法来验证?

最佳答案

如何输出值将取决于实际值。

虽然 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 。您可以使用“#:##”代替。

Source

另一个是:

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

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

假设您说您的代码“工作正常”。那么您的验证步骤是正确的。您正在检查该值是否为数字,并且四舍五入到小数点后 2 位的值是否是您想要的值。您无需再做任何事情。

关于c# - 验证并打印小数点后两位的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530485/

相关文章:

c# - 如何在 vb.net 中使用 BackgroundWorker 将代码包装在 lambda 表达式中?

c# - 文字将替换标题栏中的实际文字

c# - DateTimePicker 从不更新!

C# 计算查询中的参数个数

c# - 缓存 Linq 查询问题

c# - Html.EnumDropdownListFor : Showing a default text

c# - 循环遍历数据表,获取值和标题

c# - 值不能为空。参数名称 : dataSource. 编辑数据网格并保存到数据库

winforms - Windows 窗体的 UI 设计模式(如 WPF 的 MVVM)

c# - 如何将 ComboBox 文本设置为数据源 (C#) 中不存在的值?