打印完成百分比
我想分2龙的为了找到百分比。但是,我只能得到0.0%
或者当它们相等时,100.0%
。这是我在做什么打印完成百分比
long size =
long mem =
double avg = (double)(size/mem) * 100;
你在做long
部门,它截断了数字的小数部分。至少有一个操作数必须为一个double
产生非零double
,你可以这样做:
double avg = (double)size/mem * 100;
的分子现在变成了double
作为铸件具有high precedence比除法运算/
。
谢谢你做到了。我笑嘻嘻在字长 – user2007843 2013-03-21 20:52:07
这个“长”的分工发挥作用,但你可以得到更多的小数位比你想要的。 – 2013-03-21 23:07:07
如果你想避免长的十进制数,你可以使用。
long percentage = 100 * size/mem; // as an integer.
如果你想要一个小数位,你可以做
double percentage = (1000 * size/mem)/10.0;
在第一种情况下,它会舍入分数。如果你不先乘以100,你会得到0%或100%的建议。如果您先乘以100,则将百分比舍入,以得到0,1,2 ... 99,100。如果乘以1000并除以10.0,则得到0.0,0.1,0.2 ... 99.9,100.0 – 2013-03-21 23:33:11
请做一个搜索,你下次问一个问题之前。 – 2013-03-21 20:48:00
@SotiriosDelimanolis你会使用哪些搜索词?假设OP完全不知道术语“整数除法”。 – Mysticial 2013-03-21 20:49:10
@Mysticial'java long division'如此多的结果 – 2013-03-21 20:53:38