`
ghost_fly
  • 浏览: 111065 次
  • 性别: 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提供了`BigDecimal`类,它能够进行高精度的浮点数运算,保证结果的精确性。以下是使用`BigDecimal`进行浮点数运算的例子: ```java BigDecimal bd1 = new BigDecimal("0.1"); BigDecimal bd2...

    JAVA中浮点数的运算

    在Java编程语言中,浮点数的运算涉及到的是数值计算,特别是小数部分的处理。...通过合理使用`float`、`double`以及`BigDecimal`,我们可以根据实际需求平衡精度和性能,从而避免因浮点数运算带来的潜在问题。

    JS浮点数字操作插件floatOPS.js

    在JavaScript编程中,...总结起来,floatOPS.js是一个专注于解决JavaScript中浮点数运算精度问题的插件,通过提供加减乘除四个方法,确保了在进行浮点数运算时的精度,对于需要精确计算的场景具有很高的实用价值。

    高精度JSBigDecimal运算

    为了解决这个问题,我们可以引入高精度的BigDecimal运算库,如本压缩包中的`bigdecimal.html`、`bigdecimal3.js`和`mathcontext2.js`。 `BigDecimal`类在Java等其他语言中是专门用来处理高精度十进制数的,它提供了...

    浮点数精度问题

    1. **使用BigDecimal类**:Java提供了`java.math.BigDecimal`类,用于进行高精度的浮点数运算。它允许指定精度,并在计算过程中保持该精度,从而避免了浮点数的精度问题。 2. **比较浮点数时的容差**:直接比较两个...

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

    ### DecimalFormat精度解决与商业运算精度问题 在进行财务计算或者商业运算时,精度问题往往成为影响最终结果准确性的关键因素之一。特别是在Java这样的语言环境中,由于其内部采用二进制浮点数表示小数的方式,这...

    解决javascript中的浮点数计算不精确问题

    5. **使用BigDecimal类**:在某些高级应用中,可以考虑使用类似Java的`BigDecimal`类,它提供了高精度的浮点数运算,但JavaScript原生并不支持,可能需要引入第三方库。 理解JavaScript浮点数计算的局限性并采用...

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

    在Java编程语言中,浮点数运算经常遇到精度问题,特别是在金融或科学计算等领域,对数值的精确性有着严格的要求。这是因为Java中的`float`和`double`数据类型基于二进制浮点数表示,这导致它们无法精确表示某些十...

    Java中浮点数精度问题的解决方法

    为了解决这个问题,Java提供了`java.math.BigDecimal`类,它支持任意精度的浮点数运算。BigDecimal使用一个BigInteger对象来表示无尺度值(unscaled value),并结合一个整数尺度(scale)来实现高精度。使用...

    javaInteger大数据运算.pdf

    `BigDecimal`避免了浮点数运算中的精度损失问题,因为它可以控制小数位数。 在代码中,我们创建了`BigDecimal`对象`b3`和`b4`,并展示了它们之间的加、减、乘、除运算,以及如何解决Java中浮点数运算的精度问题。...

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

    Java中的BigDecimal是一种高精度的数据类型,它可以用来表示非常大的整数和小数,提供了丰富的数学运算功能。下面我们将对Java中BigDecimal的基本运算进行详细的介绍。 构造方法 BigDecimal有四种构造方法,但是...

    大精度的数学运算

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

    BigInteger BigDecimal 使用

    `BigDecimal`类则用于处理高精度的浮点数运算,它解决了`float`和`double`类型存在的精度问题。`BigDecimal`的构造方法同样接受字符串,或者可以通过`BigInteger`来创建: ```java BigDecimal bigDec = new ...

    BigDecimal.js.zip

    在JavaScript编程语言中,处理大型数字的精确计算是一项挑战,因为JavaScript的内置Number类型在进行大整数或高精度浮点数运算时容易出现精度损失。为了解决这个问题,开发者通常会引入第三方库,比如"BigDecimal.js...

    JAVA浮点数计算精度损失底层原理与解决方案

    2. 控制浮点数运算的精度:在某些情况下,我们可能不需要非常高的精度,可以通过设置`DecimalFormat`或者`printf`格式化输出来控制显示的位数,从而达到视觉上看似精确的效果。 3. 使用`BigInteger`处理整数部分:...

    BigDecimal向Double转换

    - **避免浮点数运算误差**:在处理涉及小数点的运算时,使用BigDecimal可以避免由浮点数运算带来的误差问题。 ## 二、BigDecimal到Double的转换 ### 2.1 使用doubleValue()方法 最简单的方式是通过BigDecimal类...

    BigDecimal-CPP-master.zip

    BigDecimal类提供了一种机制,可以进行任意精度的算术运算,而不会因为二进制浮点数的局限性而丢失精度。它通过存储浮点数的整数部分和小数部分,以及小数部分的位数来确保精度。 在"BigDecimal-CPP-master"这个...

    javascript版BigDecimal类库

    为了解决这个问题,开发者们引入了`BigDecimal`类库的概念,它在Java中被广泛使用,用于进行高精度的算术运算。本文将详细介绍JavaScript版的`BigDecimal`类库,以及如何在JavaScript环境中实现精确计算。 ...

    计算机精度问题(Double)

    此外,理解和熟悉浮点数运算的基本规则也是很重要的,比如了解浮点数乘法的分配律并不总是成立。 总的来说,理解计算机中的浮点数表示和精度问题是每个IT从业者必备的基础知识,尤其是在进行科学计算或金融计算等对...

    Java编写的大数运算

    `BigDecimal`提供了构造函数来创建任意精度的数字,以及多种方法来进行加、减、乘、除等运算,并且可以控制舍入模式,避免浮点数运算中的精度损失问题。 在项目描述中提到了“运用了类的特性”,这通常意味着项目中...

Global site tag (gtag.js) - Google Analytics