强制四个小数位为double

时间:2014-07-23 12:46:10

标签: 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)?我看过类似的帖子但是听不懂。

感谢。

4 个答案:

答案 0 :(得分:4)

所以我理解它的方式你需要四个小数,否则用右边的0填充。所以它应该是.ToString("0.0000")

答案 1 :(得分:1)

我会使用F-Format specifier

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个小数点的字符串。根据自己的喜好改变它。

答案 2 :(得分:0)

使用以下格式:

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

答案 3 :(得分:0)

我已经尝试了所有的建议。如果输出值为零,则为第4个小数,不显示它。例如,它显示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"; 

感谢所有人的宝贵意见。