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
翔南
閱讀(1203)
評論(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電騾資源下載
交通銀行官方網站
地圖、公交搜索
射手網--國內最好的字幕下載網站
建設銀行官方網站
得益網
招商銀行信用卡官方網站
支付寶登錄
搜索
積分與排名
積分 - 78543
排名 - 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无码精品色午夜
|
成a人片亚洲日本久久
|
成人毛片免费观看视频大全
|
亚洲人成小说网站色
|
毛片免费全部播放一级
|
国产精品亚洲综合五月天
|
国产h视频在线观看免费
|
33333在线亚洲
|
日韩中文字幕免费
|
国产精品亚洲一区二区三区久久
|
日本高清高色视频免费
|
亚洲不卡中文字幕无码
|
日本免费在线中文字幕
|
亚洲邪恶天堂影院在线观看
|
最近2018中文字幕免费视频
|
亚洲中文无码线在线观看
|
无人影院手机版在线观看免费
|
亚洲精品蜜夜内射
|
亚洲阿v天堂在线2017免费
|
免费看黄的成人APP
|
亚洲综合日韩中文字幕v在线
|
青娱分类视频精品免费2
|
亚洲а∨精品天堂在线
|
在线观看亚洲天天一三视
|
免费视频一区二区
|
99久久婷婷国产综合亚洲
|
国产免费小视频在线观看
|
eeuss影院www天堂免费
|
综合自拍亚洲综合图不卡区
|
大香人蕉免费视频75
|
国产免费A∨在线播放
|
亚洲丝袜美腿视频
|
在线不卡免费视频
|
一级做α爱过程免费视频
|
亚洲精品自产拍在线观看动漫
|
日本免费无遮挡吸乳视频电影
|
中文在线日本免费永久18近
|
91亚洲精品麻豆
|
亚洲精品一级无码中文字幕
|
国产精成人品日日拍夜夜免费
|