作者panger (超脱归心)
看板C_Sharp
标题[问题] Double为什麽会得不到正确的值
时间Tue Jun 9 11:15:38 2009
double a=1 / 2;
a会等於0
若改成
double a=1;
a=a/2;
a就会等於0.5
为什麽会有这样的问题阿?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.220.96
1F:→ qmomo:1/2会先被运算阿 而且会被当成整数 你打成1.0/2 就会正确了 06/09 11:19
2F:→ panger:那我如果是要两个int相除,之後得到double要怎麽做呢? 06/09 11:27
3F:推 ianfang:整数和整数运算回传还是整数 所以/会算到整数结束 06/09 11:28
4F:→ ianfang:((double)1)/2; 06/09 11:29
5F:推 maxi326:1F/2F 06/09 13:43
6F:→ panger:囧 一楼/二楼 会等於什麽??? 06/09 17:08
7F:推 ianfang:那个是代表1当成float啦... 你以为max是在跟你开玩笑吗... 06/09 19:30
8F:推 cjcat2266:或者写 1.0/2.0 06/09 21:38
9F:→ maxi326:F是指那数是浮点,类似0x??会变Hex的道理一样 06/09 23:46
10F:→ maxi326:MSDN可以查一下,我记得除了F还有别的 06/09 23:47
11F:推 senjor:看到 一楼/二楼 我笑了 XDDD 06/11 18:23