Re: [問題] 關於物件
※ 引述《cywec (Lovin'Wheet)》之銘言:
: 問題是這樣的
: 以下是我的程式碼
: public float len(float num1, float num2){
: float length = 0;
: length = num1 - num2;
: if( length < 0 )
: return -length;
: else
: return length;
: }
: 這是物件包裝的一個函式
: 當主程式傳來的值如為 5,4
: 可以正確的回傳值 1
: 不過當我的值傳來如為 5.5 , 5.4
: 則回傳的值會變成 0.099999905 而不是 0.1
: 找了半天一直看不到原因
: 用System.out.println去簡查傳進的值都沒有問題
: 不過輸出就怪怪的
浮點數精確度的問題
(這好像是很多programming language的老問題了..?)
主要是因為電腦float/double的bit數不夠的關係
(就像我們把1/3寫成小數會寫成0.3333333333
如果就真的拿這個小數值去乘3 我們會得到0.9999999999 而不是1)
其實你這裡的誤差值是9.5*10^-8 已經很小了 可以忽略它
--
**** 說:
不要期望一個精神力差不多已經見底的人阿Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.54
討論串 (同標題文章)