C#String.Format到一个小数位

时间:2014-07-13 02:12:51

标签: c# windows-8

我试图将toString格式化为一个小数位,但它仍然像21.0445445454那样。这是代码行,请让我知道我做错了什么

 double heightInchToFoot = (12 * Convert.ToDouble(heightFtBox.Text)) +Convert.ToDouble(heightInchBox.Text);
        double bmi = (Convert.ToDouble(weightBox.Text) * 703) / (heightInchToFoot * heightInchToFoot);
        bmiDisplay.Text = String.Format("{0:0.0}", bmi.ToString());//This is the line of code I'm referring to

1 个答案:

答案 0 :(得分:3)

问题是使用bmi.ToString()使用默认 Double.ToString格式/规则 1 将double转换为字符串。因此,实际的格式处理字符串(它不理解十进制格式)而不是实际的双精度值。

相反,它应该是

String.Format("{0:0.0}", bmi)

bmi.ToString("0.0")

1 来自文档:

  

Double.ToString()方法以当前文化的默认格式(" G"或一般)格式化Double值。