作者LPH66 (ゆびさきミルクティー)
看板java
标题Re: [问题] 关於物件
时间Wed Mar 29 00:38:58 2006
※ 引述《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