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 翔南
主站蜘蛛池模板:
1000部夫妻午夜免费
|
精品一区二区三区高清免费观看
|
亚洲香蕉免费有线视频
|
亚洲AV永久无码精品一百度影院
|
亚欧国产一级在线免费
|
日韩精品电影一区亚洲
|
精品国产麻豆免费网站
|
亚洲人成网男女大片在线播放
|
亚洲毛片免费视频
|
亚洲熟妇自偷自拍另欧美
|
四虎www免费人成
|
国产精品亚洲专区无码不卡
|
国产精品嫩草影院免费
|
粉色视频成年免费人15次
|
亚洲精品成人区在线观看
|
eeuss免费影院
|
亚洲AV无码久久精品色欲
|
亚洲免费在线播放
|
亚洲乱码日产精品BD在线观看
|
毛片a级毛片免费观看品善网
|
黄色一级毛片免费看
|
人妻无码一区二区三区免费
|
亚洲精品又粗又大又爽A片
|
全部免费国产潢色一级
|
精品亚洲AV无码一区二区
|
最近中文字幕免费mv视频7
|
国产亚洲漂亮白嫩美女在线
|
亚洲自偷自偷偷色无码中文
|
国产精品免费无遮挡无码永久视频
|
亚洲va久久久噜噜噜久久狠狠
|
久久免费观看国产99精品
|
亚洲国产成人久久综合一区
|
日韩一级免费视频
|
国产在线观看xxxx免费
|
亚洲AV无码成人专区
|
xvideos亚洲永久网址
|
日韩免费在线视频
|
久久亚洲AV成人无码国产最大
|
亚洲午夜无码久久久久
|
国产一卡二卡3卡四卡免费
|
香港特级三A毛片免费观看
|