C#字符串。格式为小数点后一位

C#字符串。格式为小数点后一位,c#,windows-8,C#,Windows 8,我试图将一个toString的格式设置为小数点后一位,但它一直保持为21.04454454。这是代码行请告诉我我做错了什么 double heightInchToFoot = (12 * Convert.ToDouble(heightFtBox.Text)) +Convert.ToDouble(heightInchBox.Text); double bmi = (Convert.ToDouble(weightBox.Text) * 703) / (heightInchToFoo

我试图将一个toString的格式设置为小数点后一位,但它一直保持为21.04454454。这是代码行请告诉我我做错了什么

 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

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

相反,它应该是

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


1从文件中:

Double.ToString()
方法将双精度值格式化为当前区域性的默认(“G”或常规)格式


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

相反,它应该是

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


1从文件中:

Double.ToString()
方法将双精度值格式化为当前区域性的默认(“G”或常规)格式


我不知道我是否正确,但你试过了吗?我不知道我是否正确,但你试过了吗??