我有以下代码:
double f = (1500 / 3000);
MessageBox.Show(string.Format("{0:F2}",f));
我希望得到0.50
作为我的输出,但我得到0.00
。我究竟做错了什么?请帮助我理解格式化的工作原理。
答案 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);