我正在使用WinForms应用程序,将其格式化后在视图中显示字符串。

这是我尝试格式化数字的方法:

reportData.VelocityRangeStart.ToString(reportData.Velocity.FormatString)


下面是在Visual Studio中使用立即窗口的结果:

reportData.VelocityRangeStart
12.5996475    // output
reportData.Velocity.FormatString
"#,##0.000"    // output
reportData.VelocityRangeStart.ToString(reportData.Velocity.FormatString)
"12.59965"    // output
12.5996475f.ToString("#,##0.000")
"12.600"    // output


有人可以解释我所缺少的吗?我希望在这种情况下"12.600"。仅供参考:reportData.VelocityRangeStartfloat?类型。

最佳答案

可空类型甚至不应该带有格式字符串的ToString()重载。您需要使用reportData.VelocityRangeStart.Value.ToString(reportData.Velocity.FormatString)来进行格式化。

并且不要忘记先检查值中的null!所以

reportData.VelocityRangeStart.HasValue ? reportData.VelocityRangeStart.Value.ToString(reportData.Velocity.FormatString) : "is null"

10-02 03:15