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 翔南
主站蜘蛛池模板:
免费在线视频你懂的
|
国产成人一区二区三区免费视频
|
亚洲欧洲另类春色校园小说
|
日韩一区二区a片免费观看
|
国产成人综合亚洲
|
亚洲精品成人无码中文毛片不卡
|
1000部无遮挡拍拍拍免费视频观看
|
亚洲精品9999久久久久无码
|
国产亚洲av片在线观看18女人
|
www视频在线观看免费
|
疯狂做受xxxx高潮视频免费
|
亚洲精品福利视频
|
免费一级e一片在线播放
|
色欲国产麻豆一精品一AV一免费
|
久久国产精品亚洲综合
|
美女视频黄a视频全免费
|
一级一看免费完整版毛片
|
亚洲欧洲日本精品
|
亚洲精品动漫人成3d在线
|
精品国产sm捆绑最大网免费站
|
xxxxx做受大片在线观看免费
|
亚洲专区中文字幕
|
国产成A人亚洲精V品无码性色
|
一本色道久久综合亚洲精品高清
|
亚洲国产成人一区二区精品区
|
手机在线免费视频
|
久久国产免费一区
|
在线播放国产不卡免费视频
|
亚洲日本人成中文字幕
|
亚洲AV无码精品色午夜在线观看
|
国产精品久久久久影院免费
|
91免费国产自产地址入
|
中文字幕a∨在线乱码免费看
|
麻豆安全免费网址入口
|
亚洲一区二区三区久久
|
亚洲第一极品精品无码久久
|
国产成人3p视频免费观看
|
国产va免费精品观看精品
|
久久久久久久99精品免费
|
一个人看的www在线免费视频
|
亚洲av无码日韩av无码网站冲
|