`
fantaxy025025
  • 浏览: 1329009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

数值精确计算,java中的float-double-int等计算误差

 
阅读更多

=

=

=

 

            /**
             * 输出结果:
             * float=4.68, hhhh=467
             * 居然有这种错误。看来以后需要精确的计算的地方,都要用BigNumber了。
             */
float = 4.68
hhhh = float*100;

 

修正好的方法:

 

    public static int flot2int(float f, int multiply) {
        BigDecimal bigDecimal = new BigDecimal(new String(f + ""));
        bigDecimal = bigDecimal.multiply(new BigDecimal(multiply + ""));
        return bigDecimal.intValue();
    }

 

 

=

=

=

 

分享到:
评论

相关推荐

    Java 精确计算-double-float-String

    标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...

    java数值计算算法编程

    Java数值计算算法编程是计算机科学中的一个重要领域,它涉及到如何使用Java语言进行高效且精确的数学运算。在Java中,数值计算涵盖了广泛的算法和技术,包括基本的算术运算、复杂数学函数、线性代数、微积分、概率...

    java代码-1·byte short int 在计算是会自动转化为int 2.float double 为近似值,byte short int 转化时可能会精确丢失 3.把大类型转化小的类型时可能会丢失

    首先,我们来探讨“Java中的byte, short, int在计算时会自动转化为int”。在Java中,有五种整数类型:byte、short、int、long和char。当这些类型之间进行算术运算时,较小的类型(byte、short)会被提升到较大的类型...

    java基础--4.常用类-6.数字

    在Java编程语言中,"数字"是核心概念之一,它涉及到基本数据类型、数值运算、进制转换等多个方面。在本教程中,我们将深入探讨Java中的数字处理。 首先,Java提供了八种基本数据类型,其中四类是整型:byte(1字节...

    java保留两位小数问题

    在Java中,`double`和`float`类型虽然能够表示很大的范围,但它们都是以二进制形式存储的,在某些情况下不能精确表示十进制数,这会导致计算结果出现误差。例如: ```java System.out.println(0.05 + 0.01); // ...

    Java编程中须注意的细节.pdf

    在Java中,使用浮点数(如float和double)进行计算时可能会出现精度问题。由于二进制浮点数不能精确地表示一些十进制小数,例如1.1在二进制中无法精确表示,所以进行浮点数计算时需要注意其结果的不确定性。为了解决...

    扫盲专贴:深入浅出谈数值 (1).rar

    在不同的编程语言中,如C++、Python或Java,有多种内置的数据类型来处理这些数值,如int、float、double等。 接着,我们讨论数值的精度问题。由于计算机内部使用有限的位数来表示浮点数,这导致了浮点数计算的不...

    java高手之路

    - 利用`BigDecimal`类进行精确计算,但需通过`BigDecimal(String)`构造器创建实例,避免使用`BigDecimal(double)`构造器,后者会导致精度损失。 比较两个浮点数大小时,推荐使用`BigDecimal`的`compareTo()`方法。 ...

    Java程序入门日文版

    - 在Java中,自动进行的数据类型转换通常是将较小的数据类型转换为较大的数据类型(如`int`到`float`或`float`到`double`)。但如果需要将较大的类型转换为较小的类型,则必须显式地进行类型转换。 - 示例程序5:`...

    Java中BigDecimal类的简单用法

    总之,Java中的BigDecimal类是处理精确数值计算的重要工具,尤其是在金融、会计等对精度要求极高的领域。通过使用其提供的各种构造方法和运算方法,开发者可以有效地控制计算过程中的精度,确保计算结果的正确性。...

    Java四类八种数据类型

    - **注意事项**:由于浮点数的特殊性,在进行精确计算时可能产生误差,因此不宜用于货币等需要高精度计算的场景。 - **2. `double`** - **描述**:提供更高精度的浮点数运算。 - **取值范围**:从 `4.9E-324` 到...

    Java中BigDecimal类与int、Integer使用总结

    在Java编程语言中,处理高精度的数值计算时,我们常常会遇到浮点数精度丢失的问题,这在涉及金融计算或任何需要精确数值操作的场景下尤为关键。`BigDecimal`类就是为了克服这个问题而设计的,它提供了任意精度的十...

    Java基本语法之一执行HelloWorldjsp并讲解.docx

    - `double`:64位,精度较高,适用于科学计算等对精度要求较高的场景。 - 注意:浮点运算可能会存在误差,不建议用于精确度要求非常高的场合。 ### 三、变量与常量 #### 3.1 变量声明与初始化 - 变量是内存中用来...

    如何面试java程序员.pdf,这是一份不错的文件

    - **浮点运算误差**:Java中的浮点运算存在精度误差,精确计算应使用BigDecimal类。 5. **字符集**: - **字符类型(char)**:采用Unicode字符集,支持各种语言的字符。 6. **Java编程技能**: - **阅读编程...

    java大数类.pdf

    与`BigInteger`处理整数类似,`BigDecimal`可以处理大范围的浮点数,并且能保证计算结果的精确性,避免了`float`和`double`类型的舍入误差。它提供了许多方法来进行加减乘除以及幂运算,同时还能进行格式化输出。...

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

    - **舍入误差:** 浮点运算可能产生无法精确表示的结果,导致不准确的计算结果。 #### 十二、值传递与引用传递 - **值传递:** 传递的是变量的副本,改变不会影响原变量。 - **引用传递:** 传递的是对象的引用,通过...

    Java 编程军规.docx

    - **解释**:由于浮点数的精度限制,直接使用float或double进行金融级的计算可能会产生误差。 - **实践建议**:对于需要高精度的计算场景,推荐使用BigDecimal类进行处理。 ### 总结 遵循以上军规不仅有助于提高...

    java 解惑 又一部java经典书

    这是因为计算机内部使用二进制形式存储数值,而有些十进制小数无法精确表示为二进制形式,导致计算过程中出现精度误差。 #### 解决方案 为了解决浮点数的精度问题,可以采取以下几种方式之一: - **使用字符串...

Global site tag (gtag.js) - Google Analytics