Re: java問題(鬼打牆了= =")
※ 引述《a0912859304.bbs@bbs.wretch.cc (花枝)》之銘言:
: 這個程式碼哪裡有問題啊??
: 我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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章