C#号小数位修复

时间:2015-04-30 00:38:20

标签: c# numbers

嘿伙计们我有一个数字可以说1.5我希望它是1.50

private double FixDecimals(double data)
    {
        double tmpDouble = Convert.ToDouble(String.Format("{0:0.00}", data));
        return tmpDouble;
    }

这是真正的功能,它似乎并没有起作用。请通过1.5并告诉我你得到了什么。

3 个答案:

答案 0 :(得分:1)

您无需在ToString上致电variable

String.Format("{0:0.00}", variable)

假设variable的类型为doublevariable.ToString()正在使用" G"格式化双倍。格式说明符,为您提供1.5。然后值传递给string.Format

问题编辑后更新:

double类型的变量除了转换为string之外没有实际格式。因此,FixDecimals功能确实没有意义。

就类型double的变量而言,1.5等于1.5000。如果要控制该值的显示方式,请先将其转换为string

答案 1 :(得分:1)

查看使用string.Format

时不需要.ToString()的示例
var variable = 1.5;
var frmtString = String.Format("{0:0.00}", variable);

frmtString = 1.50

这也会产生相同的结果

var mydouble = 1.5;
var frmtString = String.Format("{0:N}", mydouble);

答案 2 :(得分:0)

double是一个双精度型,如果你的双精度是1.5,那么它的计算结果相当于1.50(无论多少额外的零都要加上)。因此,当您在调试器中查看它时,它将使用默认的ToString格式化程序将其转换为可读字符串。

正如其他答案所说,如果你想打印出来那么你可以添加小数位,但是没有必要(也没有用)将它们添加到代码中,就像你正在尝试一样通过使用"额外的小数位"将double转换为字符串并再次返回到double。