`
ghost_fly
  • 浏览: 108717 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

浮点数运算的精度问题(BigDecimal运算)

    博客分类:
  • JAVA
UP 
阅读更多
import java.math.BigDecimal;

public class test {

 public static void main(String[] args) {
  float a = 1.1f;
  float b = 2.2f;
   test t = new test ();
   System.out.println(t.add(a,b));
   System.out.println(t.sub(a,b));
   System.out.println(t.mul(a,b));
   System.out.println(t.div(a,b));
   System.out.println(t.round(a));

 }
 public float add(float v1,float v2){//加法
    BigDecimal b1 = new BigDecimal(Float.toString(v1));
    BigDecimal b2 = new BigDecimal(Float.toString(v2));
   return b1.add(b2).floatValue();
   }

  public float sub(float v1,float v2){//减法
    BigDecimal b1 = new BigDecimal(Float.toString(v1));
    BigDecimal b2 = new BigDecimal(Float.toString(v2));
   return b1.subtract(b2).floatValue();
   }

  public float mul(float v1,float v2){//乘法
    BigDecimal b1 = new BigDecimal(Float.toString(v1));
    BigDecimal b2 = new BigDecimal(Float.toString(v2));
   return b1.multiply(b2).floatValue();
   }

  public float div(float v1,float v2){//除法
    BigDecimal b1 = new BigDecimal(Float.toString(v1));
    BigDecimal b2 = new BigDecimal(Float.toString(v2));
   return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
   }

  public float round(float v){//截取3位
    BigDecimal b = new BigDecimal(Float.toString(v));
    BigDecimal one = new BigDecimal("1");
   return b.divide(one,3,BigDecimal.ROUND_HALF_UP).floatValue();
   }
}

 

分享到:
评论

相关推荐

    Java中如何正确进行浮点数运算

    Java中如何正确进行浮点数运算 演示错误运算方式产生的结果 演示正确运算方式产生的结果

    DecimalFormat精度解决,商业运算精度问题

    DecimalFormat精度解决,商业运算精度问题,BigDecimal类的应用--------------

    高精度JSBigDecimal运算

    高精度JSBigDecimal运算,解决JS中BigDecimal运算和精度问题。

    Java中使用BigDecimal进行浮点数运算

    主要介绍了Java中使用BigDecimal进行浮点数运算,需要的朋友可以参考下

    JS的高精度计算(BigDecimal)

    你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例 <!-- function //+ alert(new BigDecimal("10").add(new BigDecimal("3E+...

    BigDecimal 加减乘除运算

    Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...

    大精度的数学运算

    大精度的数学运算,通过BigDecimal来实现了加、减、乘、除与四舍五入运算。

    bigdecimal

    java丢失精度,bigdecimal加减乘除

    Java-关于基本数据类型中浮点数计算产生的精度问题

    BigDecimal类是一个大小数操作类,可以用来对超过16位有效位的数据进行精确的运算,在这里我们使用BigDecimal类来解决浮点数计算产生的精度丢失问题。 精度问题 在这里我们讨论一个问题:3 – 2.7 == 0.3 的值是什么...

    BigDecimal运算封装.txt

    BigDecimal运算封装,里面封装了Integer和BigDecimal的"加减乘除法运算封装

    bignumber.min.js下载

    众所周知,数字运算的精度问题是一个让人很旦疼的问题,而java中有BigDecimal类对数字精度问题进行处理,经过一番查询,发现前段有一个宝藏精度处理类bignumber。亲测好用。 众所周知,数字运算的精度问题是一个让人...

    JS小数加减乘除运算后位数增加的解决方案

    JS小数加减乘除运算后小数点后产生多位数和计算精度损失的解决方案

    BigDecimal基本运算介绍

    bigdecimal加减乘除运算

    BigDecimal运算

    BigDecimal运算Jar包。支持sin、cos、tan、asin、acos、atan、pow、sqrt、cbrt、root、log10、log、ln、exp、sinh、cosh、tanh、asinh、acosh、atanh、deg、rad

    Java中BigDecimal的基本运算(详解)

    下面小编就为大家带来一篇Java中BigDecimal的基本运算(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    javascript BigDecimal 大数运算类 单文件浓缩版

    本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...

    Java中double类型下出现精度计算错误情况下出力方法

    Java中的简单浮点数类型float和double不能够进行运算,因为大多数情况下是正常的,但是偶尔会出现如上所示的问题。这个问题其实不是JAVA的bug,因为计算机本身是二进制的,而浮点数实际上只是个近似值,所以从二进制...

    javascript版BigDecimal类库

    javascript的数值精确计算类bigdecimal,改编自java的bigdecimal

    javascrpt BigDecimal 大数运算类 完整版(包括例子)

    其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...

    Java BigDecimal使用及基本运算(推荐)

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。这篇文章主要介绍了Java BigDecimal使用指南针(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,...

Global site tag (gtag.js) - Google Analytics