C# 强制双精度小数点后四位

C# 强制双精度小数点后四位,c#,C#,我需要显示特定的值到小数点后4位 这是密码 row["Money"] = StringMgt.ToGlobalizationString("N4", dblMoney); public static string ToGlobalizationString(string format, double dblNumber) { return dblNumber.ToString(format, CultureInfo.CreateSpecificCulture(CultureInfo.C

我需要显示特定的值到小数点后4位

这是密码

row["Money"] = StringMgt.ToGlobalizationString("N4", dblMoney);

public static string ToGlobalizationString(string format, double dblNumber)
{
    return dblNumber.ToString(format, CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name));
}
哪个输出

1.4305228 to 1.4305 (which is fine!)

0.30704454 to 0.307 (I need to display 4 decimal places consistently)
如何强制它显示四位小数(ex
0.3070
)?我看到过类似的帖子,但没有完全理解


谢谢。

所以按照我的理解,你只需要四个小数,否则在右边用0填充。所以它应该是
.ToString(“0.0000”)
我会使用:

这将返回一个带有4个小数点的字符串。更改为您喜欢的格式。

使用以下格式:

row["Money"] = StringMgt.ToGlobalizationString("0.0000", dblMoney);

我尝试了所有的建议。如果输出值的第四位小数为零,则不显示该值。对于ex,显示的是0.307,而不是0.3070。如果第四个小数点不是零,它就可以正常工作

例如:

Input value: 0.511519926 
Output: 0.5115 

Input Value: 0.45895644 
Output Value: 0.459
我去掉了文化背景,但还是不起作用

我这样做了,它成功了

ClassA.gridTable.Columns[17].DefaultCellStyle.Format = "#,0.0000"; 

感谢大家的宝贵意见。

看看
ToGlobalizationString
的作用是什么<代码>“N4”是显示4位小数的正确标准格式代码。是否有理由为每个调用创建一个新的
CultureInfo
?!如果将
ToGlobalizationString()
替换为简单的
dblMoney.ToString(“N4”)
(保留代码),它的工作原理将完全相同。您在哪里看到
0.307
?在控制中?在调试器中?为什么要使用
double
来获得金钱而不是
decimal
?看起来像是一个机器人或拥有大量帐户的人,可能有些人认为任何不指向decimal for money的建议都是错误的;我没有投反对票,但我会同意的。@TaW我在这里投了反对票(有些,像和),因为他们只是让事情变得更复杂。其他人…老实说,他们没有错,因为他们有效,但他们没有回答问题。在这种情况下,
number.ToString(“N4”)
的工作方式必须与
number.ToString(“0.0000”)
完全相同(或与Serv建议的
number.ToString(“F4”)
类似)。若第一个不适用于OP,那个么错误就在其他地方。操作代码还有其他问题。。。
ClassA.gridTable.Columns[17].DefaultCellStyle.Format = "#,0.0000";