java浮点数精确计算,使用java.math.BigDecimal,测试代码如下:
package test;
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
Double d1=0.0333D;
Double d2=0.0333D;
Double d3=0.0333D;
System.out.println(String.valueOf(d1+d2+d3));
BigDecimal b1 = new BigDecimal("0.0333");
BigDecimal b2 = new BigDecimal("0.0333");
BigDecimal b3 = new BigDecimal("0.0333");
System.out.println(b1.add(b2).add(b3).doubleValue());
System.out.println(b1.doubleValue());
BigDecimal bd = new BigDecimal(0);
String[] str = {"0.0333","0.0333","0.0333"};
for(String s : str)
{
bd = bd.add(new BigDecimal(s));
}
System.out.println(bd.doubleValue());
}
}
分享到:
相关推荐
Java对浮点数的计算是不精确的,比如0.05+0.01结果不是0.06,而是0.060000000000000005,更有甚者,一个数除以0.0,Java是...该类提供了加减乘除四则运算的精确计算方式.在你处理数据的工程中,该类可以给你意想不到的惊喜
Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。
这个类可以当做一个工具类来用,有了这个工具类,以后的浮点数的计算误差就不再是问题了。
如果你希望得到精确计算结果,最好是用分数形式来表示小数。有限小数或者无限循环小数都可以转化为分数。比如: 0.9=9/10 0.33(3)=1/3=3/9 给定一个有限小数或者无限循环小数,你能否以分母最小的分数形式返回这个...
四舍五入 ,浮点数精确计算,浮点数输出(科学记数法)等等
java运算工具类,可以处理浮点数的精度丢失问题,可以实现精确计算,常用公共方法抽取,常用工具类11111111111111111111111111111111111111111111111111111111111111111111111111
计算机之所以叫"计算"机就是因为发明它主要是用来计算的,"计算"当然是它的特长,在大家的印象中,计算一定是非常准确的。但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的。
BigDecimal类是一个大小数操作类,可以用来对超过16位有效位的数据进行精确的运算,在这里我们使用BigDecimal类来解决浮点数计算产生的精度丢失问题。 精度问题 在这里我们讨论一个问题:3 – 2.7 == 0.3 的值是什么...
Android 精确计算工具类。 /** * @Title: Arith.java * @Package com.uxun.pay.util * @Description: TODO(用一句话描述该文件做什么) * @author daiw * @date 2016-1-5 上午9:05:34 * @version V1.0 */ ...
大数乘法可以进行任意大小和精度的整数和浮点数的乘法运算, 精确度很高, 可以用作经融等领域的计算,这个是我看了一些资料, 然后自己整理实现的,简单测试了一下
可以实现数据的加减乘除,简单方便对于学习不太好的最合适
由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供 精确的浮点数运算,包括加减乘除和四舍五入,以及百分数转换。
浮点数和小数不象整数一样“循规蹈矩”,不能假定浮点计算一定产生整型或精确的结果,虽然它们的确“应该”那样做。最好将浮点运算保留用作计算本来就不精确的数值。如果需要表示定点数,则使用 BigDecimal。
在Java和MySQL中,小数的精度可能会受到限制,如float类型的小数只能精确到6-7位,double类型也只能精确到15-16位。 浮点数运算问题 在进行浮点数运算时,可能会出现精度丢失的问题,例如0.1+0.2的结果并不等于0.3...
自己写的计算机浮点数计算的误差分析,用java描述,详细地讲述了误差来源和精确地计算方法。
主要介绍了Java POI读取excel中数值精度损失问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
通常需要存储以非二进制格式计算得出的浮点数而又不丢失信息,例如存储在(JSON)文本文件中。 Java 提供了一种使用获取double 值的精确表示的。 Java还可以使用将生成的十六进制字符串反序列化为double 值。 基本包...
实例025 更精确地使用浮点数 35 实例026 不用乘法运算符实现2×16 37 实例027 实现两个变量的互换(不借助 第3个变量) 37 2.3 条件语句 38 实例028 判断某一年是否为闰年 38 实例029 验证登录信息的合法性 39 实例...
使用64位浮点数计算,结果更准确,精确度更高。 包括:角加速度;线加速度;角度;面积;电容;衣服;计算机;摩尔浓度;烹饪;烹饪-烤箱;密度;能量&功;流量;力;单位力;耗油率;照明度;感应系数;长度;转动...