为double强制四位小数

本文关键字:四位 小数 double | 更新日期: 2023-09-27 18:14:16

我需要显示特定的值到小数点后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)

我如何强制它显示四位小数(如0.3070)?我看过类似的帖子,但没有完全理解。

谢谢。

为double强制四位小数

所以我的理解是你需要正好四位小数,否则在右边填上0。所以应该是.ToString("0.0000")

我会使用F-Format说明符:

void Main()
{
    double input = 3.213112134;
    string result = input.ToGlobalizationString("F4").Dump();
}
public static class Extensions
{
    public static string ToGlobalizationString(this double input, string format)
    {
        return input.ToString(format, CultureInfo.CreateSpecificCulture(CultureInfo.CurrentCulture.Name));
    }
}

这将返回一个带有4个小数点的字符串。

使用以下格式:

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

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

的例子:

Input value: 0.511519926 
Output: 0.5115 
Input Value: 0.45895644 
Output Value: 0.459

我把文化设置关掉了,还是不行。

我这样做了,它成功了

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

感谢大家的宝贵意见。