朙的学习笔记
生活、学习、工作
posts - 12, comments - 11, trackbacks - 0, articles - 0
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
浮点计算时保护精度的一个方法——BigDecimal
Posted on 2009-10-16 22:11
zengmingcd@163.com
阅读(466)
评论(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 配置过程。(2292)
2. JBoss5配置时的怪现象(892)
3. 更正《Eclipse + Seam 配置过程》一文中的几个错误。(855)
4. HP品牌机安装操作系统的一个重点.(799)
5. JavaDOC文档注释规则(607)
评论排行榜
1. Eclipse + JBoss Seam 配置过程。(4)
2. JBoss5配置时的怪现象(3)
3. JavaDOC文档注释规则(2)
4. 更正《Eclipse + Seam 配置过程》一文中的几个错误。(2)
5. 新丁报道(0)