作者wesley10000 (wesley)
看板java
标题[问题] long的相除
时间Wed May 16 23:36:13 2012
今天遇到了一个Long型态相除的问题
long a = 1;
long b = 2;
写法一:
double c = a/b;
结果c = 0
写法二:
double c = (double) a/b;
结果c = 0.5
写法三:
double c = (double) (a/b);
结果c = 0
有人知道为什麽写法三出来不会是0.5吗!?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.165.20.44
1F:→ lovdkkkk:因为写法一出来不是0.5 05/16 23:43
2F:→ tkcn:写法三只是先做解法一,再 (把0) 转成 double 05/16 23:43
3F:推 danshu:写法二是先把a转成dobule後再除以b(long),所以会是0.5 05/17 01:19
4F:→ chunhsiang:参考向上转型 05/17 09:03
5F:推 PsMonkey:重点是你是否知道写法一的结果,後头都是运算顺序问题 05/17 11:13
6F:→ wesley10000:喔!是我没有想清楚写法二,会先去做(double)a 05/18 15:12
7F:→ wesley10000:所以我想最正确的写法应该会是(double)a / (double)b 05/18 15:14
8F:推 PsMonkey:1.0*a/b,想清楚再说...... 05/18 17:07