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電騾資源下載
交通銀行官方網站
地圖、公交搜索
射手網--國內最好的字幕下載網站
建設銀行官方網站
得益網
招商銀行信用卡官方網站
支付寶登錄
搜索
積分與排名
積分 - 78539
排名 - 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 翔南
主站蜘蛛池模板:
亚洲AV无码一区二三区
|
久久精品女人天堂AV免费观看
|
久久精品中文字幕免费
|
97在线视频免费
|
免费无码AV片在线观看软件
|
国产精品色午夜免费视频
|
av在线亚洲欧洲日产一区二区
|
亚洲色欲色欲www在线丝
|
久久笫一福利免费导航
|
成年女人喷潮毛片免费播放
|
免费永久在线观看黄网站
|
亚洲日韩精品射精日
|
亚洲国产日韩在线一区
|
久久精品国产亚洲av天美18
|
二个人看的www免费视频
|
色老头永久免费网站
|
国产午夜影视大全免费观看
|
亚洲无人区一区二区三区
|
亚洲国色天香视频
|
亚洲aⅴ无码专区在线观看
|
国产又黄又爽又大的免费视频
|
国产精品视频免费
|
免费成人午夜视频
|
亚洲五月六月丁香激情
|
亚洲精品乱码久久久久久V
|
你懂的免费在线观看
|
色窝窝免费一区二区三区
|
亚洲黄黄黄网站在线观看
|
亚洲综合激情九月婷婷
|
国产亚洲情侣久久精品
|
久久精品成人免费观看
|
国产美女a做受大片免费
|
婷婷亚洲久悠悠色悠在线播放
|
久久精品国产亚洲AV嫖农村妇女
|
亚洲精品美女久久久久久久
|
两性色午夜免费视频
|
日韩精品无码区免费专区
|
亚洲欧洲∨国产一区二区三区
|
亚洲综合无码一区二区痴汉
|
久久久久久免费一区二区三区
|
日韩在线视频免费看
|