朙的學習筆記
生活、學習、工作
posts - 12, comments - 11, trackbacks - 0, articles - 0
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
浮點計算時保護精度的一個方法——BigDecimal
Posted on 2009-10-16 22:11
zengmingcd@163.com
閱讀(469)
評論(0)
編輯
收藏
所屬分類:
學習ing
今天,一朋友問了我一個問題:
數A和數B
要求A每高于(或低于)B 0.5,數C就相應增加或減少0.5。
這個算法該怎么樣寫?
很簡單的一個東西。但是要求精度不能丟失。
查了查,原來可以用BigDecimal來實現。
寫了個簡單的程序:
public
static
double
oprbigdecimal(
double
a,
double
b,
double
c)
{
//
轉換為bigdecimal
BigDecimal bigA
=
new
BigDecimal(Double.toString(a));
BigDecimal bigB
=
new
BigDecimal(Double.toString(b));
BigDecimal bigC
=
new
BigDecimal(Double.toString(c));
//
增加值,如果確定是加減相同值可以優化的。
BigDecimal step
=
new
BigDecimal(
"
0.5
"
);
//
計算差值
BigDecimal dif
=
bigA.subtract(bigB);
//
如果差值在0.5的話。C+0.5
//
注意,這里比較時就不要用bigdecimal了。會有問題的
if
(dif.doubleValue()
==
0.5
)
{
bigC
=
bigC.add(step);
}
//
差值在-0.5的話。C-0.5
if
(dif.doubleValue()
==
-
0.5
)
{
bigC
=
bigC.subtract(step);
}
//
返回結果
return
bigC.doubleValue();
}
BigDecimal可以使用String類型的值來初始化對象。
在BigDecimal中會將浮點數轉換 整型+精度 的表示方法。
使用add(加)、subtract(減)、multiply(乘)、divide(除)時都會使用整型來計算。精度轉為大精度的。
(注意divide除法需要指定保留精度和四舍五入)
這樣就可以保護浮點數計算的精度了。
Ming
E-Mail:
zengmingcd@163.com
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
浮點計算時保護精度的一個方法——BigDecimal
啟動Eclipse時的一個異常
Java Web開發框架初學
HP品牌機安裝操作系統的一個重點.
JBoss5配置時的怪現象
Java配置的問題
JavaDOC文檔注釋規則
Powered by:
BlogJava
Copyright © zengmingcd@163.com
日歷
<
2009年10月
>
日
一
二
三
四
五
六
27
28
29
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
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
(11)
JBoss Seam(4)
MyTranslation
學習ing(7)
生活雜記
隨筆檔案
(12)
2009年10月 (1)
2009年8月 (6)
2009年7月 (3)
2009年4月 (1)
2009年3月 (1)
搜索
最新評論
1.?re: Eclipse + JBoss Seam 配置過程。
評論內容較長,點擊標題查看
--zengmingcd@163.com
2.?re: Eclipse + JBoss Seam 配置過程。
怎么沒有注明版本號呢
--風光好符合規范
3.?re: Eclipse + JBoss Seam 配置過程。
請問樓主 :這些些沒有對版本的要求嗎
--風光好符合規范
4.?re: Eclipse + JBoss Seam 配置過程。
這個配置過程中有幾點錯誤。在后面的文章《更正<Eclipse + Seam 配置過程>一文中的幾個錯誤》中說明修改了。
--zengmingcd@163.com
5.?re: JBoss5配置時的怪現象
評論內容較長,點擊標題查看
--zengmingcd@163.com
閱讀排行榜
1.?Eclipse + JBoss Seam 配置過程。(2296)
2.?JBoss5配置時的怪現象(900)
3.?更正《Eclipse + Seam 配置過程》一文中的幾個錯誤。(862)
4.?HP品牌機安裝操作系統的一個重點.(806)
5.?JavaDOC文檔注釋規則(611)
評論排行榜
1.?Eclipse + JBoss Seam 配置過程。(4)
2.?JBoss5配置時的怪現象(3)
3.?JavaDOC文檔注釋規則(2)
4.?更正《Eclipse + Seam 配置過程》一文中的幾個錯誤。(2)
5.?新丁報道(0)
主站蜘蛛池模板:
久久99国产综合精品免费
|
精品一区二区三区高清免费观看
|
国产精品色午夜免费视频
|
亚洲无限乱码一二三四区
|
91av视频免费在线观看
|
亚洲嫩草影院在线观看
|
国产精品久久久久免费a∨
|
亚洲国产精品婷婷久久
|
99在线视频免费
|
亚洲人成片在线观看
|
久久久久久久久免费看无码
|
亚洲一区二区三区丝袜
|
国产成人精品免费视频软件
|
男女猛烈无遮掩视频免费软件
|
污污网站免费观看
|
亚洲欧洲第一a在线观看
|
亚洲视频免费观看
|
亚洲午夜无码毛片av久久京东热
|
二级毛片免费观看全程
|
久久被窝电影亚洲爽爽爽
|
午夜免费福利视频
|
国产精品亚洲精品青青青
|
国产无遮挡裸体免费视频
|
国产AV日韩A∨亚洲AV电影
|
久久久久亚洲AV无码专区网站
|
亚洲国产成人精品无码区在线秒播
|
国产亚洲精品美女久久久久
|
亚洲第一页综合图片自拍
|
三年片免费高清版
|
麻花传媒剧在线mv免费观看
|
四虎必出精品亚洲高清
|
中文字幕亚洲无线码
|
日韩免费无码一区二区三区
|
亚洲精品国产综合久久久久紧
|
免费人成网站在线观看10分钟
|
国产精品亚洲一区二区三区在线
|
久久亚洲精品成人无码
|
亚洲欧洲∨国产一区二区三区
|
久久99精品免费一区二区
|
亚洲美女一区二区三区
|
亚洲第一区精品观看
|