我试图将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
答案 0 :(得分:3)
问题是使用bmi.ToString()
使用默认 Double.ToString格式/规则 1 将double转换为字符串。因此,实际的格式处理字符串(它不理解十进制格式)而不是实际的双精度值。
相反,它应该是
String.Format("{0:0.0}", bmi)
或
bmi.ToString("0.0")
1 来自文档:
Double.ToString()
方法以当前文化的默认格式(" G"或一般)格式化Double值。