作者king08 (糊涂蛋)
看板java
标题Re: java问题(鬼打墙了= =")
时间Thu Apr 20 17:52:12 2006
※ 引述《[email protected] (花枝)》之铭言:
: 这个程式码哪里有问题啊??
: 我print出来都是小数点耶!!
: 程式的原始码
: class pass53{
: public static void main(String [] args){
: System.out.println(55.5-44.1);
: }
: }
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 鬼打墙1
: -------------------------------------------
: class pass53{
: public static void main(String [] args){
: double n=0;
: n=55.5-44.1;
: System.out.println(n);
: }
: }
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 鬼打墙2
: 无法使用float来写这个程式码
: 请各位大大给我一些建议吧!!
: 急用…谢谢…
: 可以用精确数值吗??
如果你的想法:55.5-44.1=11.4的话,在Java中你要先把2边都乘上
小数点的位数之後再除以小数点的位数,就可以得到正解了
EX:
1.(55.5乘10-44.1乘10)除10
2.(32.41乘100-22.35乘100)除100
而且这在Java Puzzle 中有说过,因为使用到小数点的数Java预设值为double
而double 只是取近似值而已
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.156.65
※ 编辑: king08 来自: 210.58.156.65 (04/20 17:54)