`
wzju64676266
  • 浏览: 13862 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java double精度丢失解决方案

阅读更多
//方法1:用NumberFormat类来格式化数字,觉得这种算数运算比较直观
		NumberFormat numberFormat=NumberFormat.getNumberInstance();
		double a = 11540.0;
        double b = 0.35;
        double result = a * b;
        System.out.println(result);  //4038.9999999999995
        System.out.println( numberFormat.format(result));   //4,039   返回是数字是string类型,有,分割
        System.out.println(Double.valueOf(numberFormat.format(result).replaceAll(",", "")));//4039.0


       //方法1:用BigDecimal来处理,multiply是表示乘的方法,但看起来很不直观,习惯了算数运算,但也很多人用这种方法
        BigDecimal aa = new BigDecimal(String.valueOf(a));
        BigDecimal bb = new BigDecimal(String.valueOf(b));
        result = aa.multiply(bb).doubleValue();
        System.out.println(result);

  

分享到:
评论

相关推荐

    Java Double 精度问题总结

    #### 一、Java Double 精度丢失的原因 1. **二进制表示限制**:`double` 类型基于IEEE 754标准的双精度格式,使用64位来表示一个浮点数。然而,并不是所有的小数都能被精确地表示为二进制形式,这就导致了一些数值...

    解决java数值范围以及float与double精度丢失的问题

    解决java数值范围以及float与double精度丢失的问题 Java中的数值范围和浮点数精度问题是许多开发者经常遇到的问题。下面我们将详细探讨Java中的数值范围、float和double类型的精度问题,并且提供解决方案。 一、...

    java_double_精度

    Java 双精度浮点数精度问题解决方案 Java 中的双精度浮点数(double)类型在进行运算时经常出现精度丢失的问题,这是由于双精度浮点数在计算机内部的存储方式所致。双精度浮点数使用 64 位二进制数来存储小数,然而...

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

    在Java中,浮点数类型包括单精度浮点数`float`(4字节,32位)和双精度浮点数`double`(8字节,64位)。虽然`double`类型提供了较高的精度,但仍然无法完全避免精度损失。 浮点数在计算机内部是采用IEEE 754标准...

    java基础知识大总结

    - 自动类型转换是从低精度类型到高精度类型,而强制类型转换是从高精度类型到低精度类型,可能会导致精度丢失。 8. Java技术架构: - J2EE是针对企业环境的应用程序解决方案,包括Servlet和JSP等技术。 - J2SE是...

    【项目实践】商业计算怎样才能保证精度不丢失(csdn)————程序.pdf

    2. **定长整数**:另一种解决方案是使用定长整数类型,如Java中的`BigInteger`,尽管它不处理小数,但在处理大整数时可以保持精度。在商业计算中,如果金额不涉及小数部分,这种方法也可以考虑。 在处理BigDecimal...

    Java中实现浮点数的精确计算

    在Java编程中,使用`float`和`double`类型进行浮点数计算时经常会遇到精度丢失的问题。这是因为浮点数在计算机内部是以二进制形式存储的,而某些十进制小数无法用二进制精确表示,从而导致计算结果出现误差。例如,`...

    java考试复习资料

    - **解决方案**:使用`BigDecimal`类来进行精确的浮点数运算。 #### 十六、递增运算符的差异 - `++i`:先进行自增运算,再返回结果。 - `i++`:先返回当前值,再进行自增运算。 #### 十七、程序结构 程序结构...

    java练习题4.txt

    通过这个Java练习题,学习者不仅可以练习基本的算术运算和程序结构,还可以学习到如何将现实世界的问题转换成编程问题,并用代码实现解决方案。此外,还能够加深对Java语法、变量定义、方法调用等编程基础的理解。

    Test_int_to_double.rar_memory

    标题“Test_int_to_double.rar_...总的来说,这个压缩包提供的代码可能涵盖了Java中基本类型转换的测试,以及一个内存优化的Cookie管理解决方案。这对于理解Java内存管理、数据类型转换以及HTTP交互的细节非常有价值。

    挣钱兑零(Java)

    这种简单问题的解决方案通常不需要复杂的类设计或对象实例化。 这个程序对于初学者来说,是一个很好的实践案例,它展示了基本的输入/输出处理、数据类型转换、数学运算以及控制流。通过这个程序,学习者可以理解...

    JAVA入门经典案例.pdf

    1. 变量使用常用错误及解决方案 - **未经声明的变量**:在Java中,变量使用前必须声明其类型和名称。例如,`a = 1;` 会导致编译错误,因为变量a未声明。正确做法是先声明变量,如 `int a;` 再进行赋值。 - **不...

    java解惑

    - **精度丢失问题:**由于`1.10`的近似表示与真实值存在微小差异,在进行算术运算时累积误差。 ##### 解决方案 为了避免此类问题,可以采取以下几种策略: 1. **使用整数类型:**如使用`int`或`long`,以分为单位...

    java面试笔记整理,包含java,redis,kafka等

    - **精度问题:** 浮点数在表示小数值时可能会存在精度丢失,不适合用于财务计算。 - **舍入误差:** 浮点运算可能产生无法精确表示的结果,导致不准确的计算结果。 #### 十二、值传递与引用传递 - **值传递:** 传递...

    java面试题库

    - 数据类型:`float`和`double`是浮点型,但它们之间的转换需要注意精度丢失。例如,`float f = 3.4`是错误的,应使用强制类型转换 `(float)3.4`。 2. **异常处理**: - 异常处理是Java程序中重要的错误处理机制...

    Java经典面试题+答案(带书签)pdf

    - 解决方案包括排除冲突依赖项、使用特定版本的依赖项等。 **20. 基本数据类型强制转换** - 强制类型转换可以将一种数据类型转换为另一种。 - 如将`double`转换为`int`时,会丢失小数部分。 **21. 创建对象时,...

    sonar检查规则指南

    - **解决方案**:应当直接比较`Atomic`类的值,例如对于`AtomicInteger`可以使用`get()`方法获取其值后再进行比较。 ##### 2. "a=+" should not be used instead of "+=" - **解释**:虽然`a=+b;`在语法上是正确的...

    POJ1001-Precision power

    5. **编程语言和编译器**:POJ1001的解决方案可能涉及到C++、Java等常见编程语言,因为这些语言在处理数学计算和算法实现上比较方便。 6. **测试用例**:编程题目的解决方案通常需要通过一系列预设的测试用例来验证...

    长整数与浮点互转

    当长整数转换为浮点数时,如果数值太大,可能会导致精度丢失;反之,浮点数转换为整数时,小数部分会被忽略,如果浮点数大于整型的最大值,转换可能会导致溢出错误。 在给定的“长转浮.exe”程序中,我们可以推测这...

Global site tag (gtag.js) - Google Analytics