ebuddy
oh.. nice!
What the hell is going on?!
BlogJava
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
隨筆:46 文章:2 評論:233 引用:0
要求精確答案就避免使用double和float
今天看Effective java中有這么一條"如果要求精確答案,請避免使用float和double".
這可真讓我大吃一驚!!我很不解,而且不是很相信.于是我寫了兩個個程序試驗了下.
1
public
class
TestFloatDouble
{
2
3
public
static
void
main(String[] args)
{
4
5
float
a
=
(
float
)
1.03
;
6
float
b
=
(
float
) .
42
;
7
8
double
c
=
1.03
;
9
double
d
=
.
42
;
10
11
System.out.println(a
*
b);
12
System.out.println(c
-
d);
13
}
14
15
}
輸出結果為
0.43259996
0.6100000000000001
而正確結果應為
0.4326
0.61
如果需要得到精確答案,那就用java.math里的BigDecimal吧,雖然效率相對低一點,但至少是正確的!!!
1
import
java.math.BigDecimal;
2
3
public
class
TestBigDecimal
{
4
5
public
static
void
main(String[] args)
{
6
7
BigDecimal a
=
new
BigDecimal(
"
1.03
"
);
8
BigDecimal b
=
new
BigDecimal(
"
.42
"
);
9
10
System.out.println(a.multiply(b));
11
System.out.println(a.subtract(b));
12
13
}
14
15
}
輸出結果同樣也是正確結果為
0.4326
0.61
我就不會了,誰能告訴我這是為什么呢???????
各位大蝦們給偶指點下!!!
what the hell is going on ??!!
發表于 2007-10-05 10:36
翔南
閱讀(1202)
評論(5)
編輯
收藏
所屬分類:
技術
評論
#
re: 要求精確答案就避免使用double和float
呵呵,這很正常,浮點數本來就是有誤差的,而BigDecimal在內部不是以浮點表示的
千里冰封
評論于 2007-10-05 11:08
回復
更多評論
#
re: 要求精確答案就避免使用double和float
請學習浮點數的儲存原理。
richielea
評論于 2007-10-05 11:49
回復
更多評論
#
re: 要求精確答案就避免使用double和float
浮點型設計的本身不是用于精確計算的,而是用于科學計數的。所以要精確可以采用BigDecimal做轉換。
origo
評論于 2007-10-08 14:08
回復
更多評論
#
re: 要求精確答案就避免使用double和float
謝謝各位的指點哈!!
翔南
評論于 2007-10-08 16:02
回復
更多評論
#
re: 要求精確答案就避免使用double和float[未登錄]
嗯,我也是從Effective Java上面看的
Jack L
評論于 2007-10-12 00:35
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Understanding Binary, Decimal and Hexadecimal - A Tutorial
shell之“>/dev/null 2>&1”
iostat來對linux硬盤IO性能進行了解
Understanding software Installation (configure, make, make install)
oracle rman
Oracle 表解鎖
ORACLE批量綁定FORALL與BULK COLLECT
oracle查看表分區情況sql
oracle存儲過程被鎖定的解決方法
Oracle牛人blog
<
2007年10月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
公告
Welcome!
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(51)
給我留言
查看公開留言
查看私人留言
隨筆分類
(45)
亂78糟(19)
(rss)
技術(26)
(rss)
隨筆檔案
(45)
2012年12月 (1)
2011年12月 (1)
2011年11月 (1)
2011年9月 (2)
2011年8月 (7)
2011年7月 (4)
2011年3月 (2)
2011年2月 (2)
2010年8月 (1)
2010年6月 (1)
2010年5月 (1)
2010年4月 (1)
2010年1月 (2)
2009年12月 (2)
2009年11月 (2)
2009年10月 (1)
2009年9月 (1)
2009年5月 (1)
2009年4月 (1)
2008年10月 (1)
2007年12月 (3)
2007年10月 (6)
2007年9月 (1)
相冊
void
好網站
Eclicpse官方網站
(rss)
Gmail登錄
Java examples
SUN官方網站
VeryCD電騾資源下載
交通銀行官方網站
地圖、公交搜索
射手網--國內最好的字幕下載網站
建設銀行官方網站
得益網
招商銀行信用卡官方網站
支付寶登錄
搜索
積分與排名
積分 - 78538
排名 - 710
最新評論
1.?re: java與.net平臺之間進行RSA加密驗證
RSAType 這個是啥啊 樓主 求指教:我Q:952547032
--馬軍
2.?re: TEA加密算法java版
你好麻煩問下SaveFileIO這個類找到了嗎 @尚雪蓮
--強錦旗
3.?re: TEA加密算法java版
SaveFileIO 這個類在哪里?
--尚雪蓮
4.?re: java與.net平臺之間進行RSA加密驗證[未登錄]
RSAType 這個是啥啊 樓主
--Cobra
5.?re: CET-4大學英語四級歷年真題及答案Word版[89-07年39套],提供下載!
CET-4大學英語四級歷年真題及答案Word版[89-07年39套],
非常感謝博主! 萬分感謝!
--劉元洪
閱讀排行榜
1.?CET-4大學英語四級歷年真題及答案Word版[89-07年39套],提供下載!(10118)
2.?java與.net平臺之間進行RSA加密驗證(9831)
3.?linux下使用crond定時執行kettle的job(9080)
4.?TEA加密算法java版(8749)
5.?小游戲--貪食蛇--C#--源代碼(4823)
評論排行榜
1.?CET-4大學英語四級歷年真題及答案Word版[89-07年39套],提供下載!(100)
2.?my俄羅斯方塊!(45)
3.?my俄羅斯方塊修正BUG和新功能!提供下載!(18)
4.?小游戲--貪食蛇--C#--源代碼(12)
5.?簽了! 找工作 == 噩夢般的生活(11)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 翔南
主站蜘蛛池模板:
日韩在线播放全免费
|
免费一级毛片在线播放视频
|
全免费毛片在线播放
|
久久亚洲私人国产精品vA
|
久操视频在线免费观看
|
亚洲大成色www永久网站
|
大地影院MV在线观看视频免费
|
四虎影在线永久免费观看
|
亚洲日韩国产二区无码
|
日韩精品免费电影
|
羞羞漫画小舞被黄漫免费
|
国产免费卡一卡三卡乱码
|
免费福利在线观看
|
亚洲综合伊人久久大杳蕉
|
国产精品区免费视频
|
亚洲人成黄网在线观看
|
全免费一级午夜毛片
|
免费一级做a爰片久久毛片潮
|
国产福利电影一区二区三区,亚洲国模精品一区
|
国产国拍精品亚洲AV片
|
免费国产成人α片
|
久久精品国产亚洲av麻豆小说
|
欧亚精品一区三区免费
|
西西人体大胆免费视频
|
国产亚洲精品不卡在线
|
久久综合国产乱子伦精品免费
|
www.亚洲成在线
|
在线a亚洲v天堂网2018
|
久久99青青精品免费观看
|
亚洲婷婷第一狠人综合精品
|
国产乱人免费视频
|
女人体1963午夜免费视频
|
在线亚洲午夜片AV大片
|
亚洲国产日韩成人综合天堂
|
99久久精品免费精品国产
|
亚洲人成网站在线在线观看
|
亚洲中文字幕久久精品无码APP
|
91手机看片国产永久免费
|
美女被吸屁股免费网站
|
亚洲欧洲另类春色校园小说
|
免费v片在线观看无遮挡
|