格式化字符串,我做错了什么?

时间:2012-01-23 18:33:32

标签: c# string format

我有以下代码:

double f = (1500 / 3000);
MessageBox.Show(string.Format("{0:F2}",f));

我希望得到0.50作为我的输出,但我得到0.00。我究竟做错了什么?请帮助我理解格式化的工作原理。

5 个答案:

答案 0 :(得分:11)

它是整数除法。您的至少一个值必须是double(非整数)。

1500 / 3000 = 0
1500 / 3000.0 = 0.50

答案 1 :(得分:3)

你正在划分整数。

更改为

double f  = (Convert.ToDouble(1500)/Convert.ToDouble(300);
MessageBox.Show(string.Format("{0:F2}",f));

答案 2 :(得分:2)

试试double f = (1500.0 / 3000.0);

答案 3 :(得分:1)

你应该使用

double f = (1500d / 3000d);

如果不使用“d”,则数字应为整数,因此1500/3000为零! 在分割之前,你使用的数字中几乎有一个必须加倍或加倍。

答案 4 :(得分:1)

此处的问题是double值设置为0。您正在进行整数除法,将结果截断为0,然后将其赋值为double。您需要切换到浮点除法

double f = (1500d / 3000);