`

java中浮点数的精度

    博客分类:
  • J2EE
阅读更多
绝不要用浮点类型来保存money数据. 采用浮点数得到的计算结果是不精确的
double a = 1.14 * 75; // 85.5 将表示为 85.4999...   
System.out.println(a);
System.out.println(Math.round(a)); // 输出值为85
BigDecimal b = (new BigDecimal("1.14")).multiply(new BigDecimal(75)); // 85.5
System.out.println(b); //85.50


http://macrochen.iteye.com/blog/1393502 java编程易出错的问题
分享到:
评论

相关推荐

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

    在Java编程中,浮点数精度问题是一个常见的困扰,尤其是在进行数学计算或财务计算时。浮点数精度问题主要体现在,当使用float或double类型的数值进行运算时,结果并不总是与预期相符,这主要是由于计算机内部对...

    JAVA中浮点数的运算

    在Java编程语言中,浮点数的运算涉及到的是数值计算,特别是小数部分的处理。浮点数在计算机内部是以二进制表示的,这与我们通常使用的十进制系统不同,因此在进行浮点数运算时可能会出现精度丢失的问题。这篇博客...

    Java输入浮点数分别输出整数部分和小数部分

    Java输入浮点数分别输出整数部分和小数部分

    疯狂Java讲义 浮点数转换成人民币读法

    在Java中,浮点数有两种类型:float和double。float是单精度浮点数,占用4个字节,精度约为7位小数;double是双精度浮点数,占用8个字节,精度约为15位小数。由于浮点数在计算机内部是以二进制形式存储的,因此可能...

    浮点数精度问题

    在给定的`DoubleUtil.java`文件中,可能包含了一些处理浮点数精度问题的实用工具方法,比如四舍五入、比较或转换为特定精度的字符串。通过阅读和理解这些方法,我们可以学习到更多关于如何在实际编程中应对浮点数...

    单精度&双精度浮点数与十六进制数相互转换

    在实际编程中,大多数编程语言如C++、Java、Python等都提供了内置函数来进行浮点数和十六进制之间的转换。例如,在Python中,可以使用`float.hex()`和`float.fromhex()`方法实现这一过程。 理解这些转换机制对编程...

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

    3. **使用库**:有一些库,如提供的`DoubleCount.js`,可以帮助处理浮点数精度问题。`DoubleCount.js`可能提供了更精确的浮点数计算方法,或者提供了方便的比较和格式化工具。 ```javascript // 引入DoubleCount....

    ModbusRTU协议中浮点数转换

    本文将深入探讨如何在C#中处理Modbus RTU协议中的浮点数转换,包括浮点数到整型以及整型到浮点数的转换,并简要介绍Modbus RTU协议。 首先,让我们理解一下Modbus RTU协议。Modbus是基于串行通信的一种简单协议,...

    单精度浮点数转Modbus协议十六进制格式.rar

    在IEEE 754标准中,单精度浮点数占用32位(4字节),包括1个符号位、8个指数位和23个尾数位。其中,符号位0代表正数,1代表负数;指数位是偏移量,实际指数需加上偏置值127;尾数位用于表示小数部分。 在转换过程中...

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

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

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

    在Java编程中,浮点数运算常常会遇到精度问题,这是由于浮点数在计算机内部的存储方式导致的。为了确保浮点数运算的准确性,开发者需要采取特定的方法。以下将详细阐述这个问题,并提供正确的处理策略。 首先,理解...

    用java从文件中读取浮点数

    在Java中,主要使用两种浮点数类型:`float`(单精度)和`double`(双精度)。`double`类型的精度更高,通常用于需要高精度计算的场景。 #### 1.2 文件读取机制 在Java中,文件读取通常涉及到输入流(`InputStream`...

    IEEE754浮点数_数值转换_浮点数转换_

    总的来说,理解和掌握IEEE754浮点数标准对于理解计算机中的数值计算和精度问题至关重要。无论是软件开发、数据分析还是硬件设计,都可能涉及到浮点数的处理和转换,因此深入学习这一主题将对提升技术能力产生积极...

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

    浮点数计算在Java中常常会遇到精度损失的问题,这是由于计算机硬件的限制以及浮点数在二进制表示上的特性所导致的。在Java中,浮点数类型包括单精度浮点数`float`(4字节,32位)和双精度浮点数`double`(8字节,64...

    Java浮点数.pdf

    Java中的浮点数类型主要包括两种:float和double。它们分别占据了4个字节(32位)和8个字节(64位)的内存空间。这两种类型在计算机内部的存储方式遵循IEEE 754浮点数表示标准,这是一种高效且广泛使用的浮点数存储...

    Java源码获取浮点数类型的最大最小值

    在Java编程语言中,浮点数类型包括`float`和`double`,它们分别用于存储单精度和双精度浮点数。了解如何在源码级别获取这两种类型的最大和最小值对于编写高效且精确的代码至关重要。本文将深入探讨Java中获取浮点数...

    Java Double 精度问题总结

    在Java编程语言中,`double` 类型是一种用于表示64位浮点数的原始数据类型。虽然 `double` 提供了相对较高的精度,但在涉及精确数学运算(特别是涉及到小数值)时,由于其内部采用二进制浮点数格式存储,仍会出现...

    浮点数与十六进制转换.rar

    了解浮点数和十六进制转换的原理对理解和调试涉及数字表示的代码至关重要,尤其是在处理浮点数精度问题、数据传输或解析二进制数据时。而通过使用特定的转换工具,可以简化这个过程,提高效率,这对于IT从业者来说是...

    java_double_精度

    Java 双精度浮点数精度问题解决方案 Java 中的双精度浮点数(double)类型在进行运算时经常出现精度丢失的问题,这是由于双...使用 BigDecimal 类可以解决 Java 中的双精度浮点数精度问题,从而避免程序处理流程出错。

Global site tag (gtag.js) - Google Analytics