`

float 导致的计算精确度问题

阅读更多

java 中float   计算精确度问题,解决方法是利用BigDecimal     如下程序得到两个不同的结果

import java.math.BigDecimal;

/**
 * @author xiangqi
 *
 */
public class Test {

	/**
	 * <dl>
	 * <dt><b>方法功能概要</b></dt>
	 * <dd></dd>
	 * </dl>
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Float a = 108f;
		Float b = 1.05f;
		Float c = new BigDecimal(a.toString()).multiply(new BigDecimal(b.toString())).floatValue();
		System.out.println(c);
		Float d = a * b;
		System.out.println(d);
	}

}
分享到:
评论

相关推荐

    详解iOS之关于double/float数据计算精度问题

    iOS 之关于 double/float 数据计算精度问题详解 iOS 开发中,double 和 float 数据类型的计算精度问题是一个常见的问题。本篇文章将详细介绍 iOS 中 double/float 数据计算精度问题的根源、解决方案和高精度计算...

    js计算精度问题解决方案

    在JavaScript编程语言中,计算精度问题是一个...如果压缩包中的"js-float-accuracy-master"库提供了实用的解决方案,那么它可能包含了一些优化的算法或工具,以帮助开发者更好地处理JavaScript中的浮点数计算精度问题。

    iOS 解决floatValue,doubleValue等计算不精确问题,一句话解决精确计算,精确比较

    浮点数在计算机内部是以二进制形式存储的,由于十进制到二进制的转换不完全可逆,导致某些十进制浮点数无法精确表示,从而在计算过程中出现误差。例如,`float`和`double`类型的值在进行加减乘除运算后,结果可能与...

    int 到 float 转换精度损失测试程序 C++ 源代码

    例如,一个`int`值23456789转换成`float`后,其二进制表示可能不能完全复原原始的整数值,导致计算结果微小的误差。这种误差在科学计算、财务应用或者任何对精度要求高的场景中都可能引起问题。 测试程序`int2flt....

    float_math.rar_float_float_math iA_浮点计算

    这种转换过程可能会导致精度损失,但可以通过优化算法来减少这种影响。 在C语言中,浮点运算通常依赖于编译器的浮点支持。然而,在不支持硬件浮点的微控制器上,程序员必须自己编写或找到开源的软件库来处理这些...

    C#中处理多位小数精度的精度问题

    例如,`0.1 + 0.2`在计算机内部并不完全等于`0.3`,而是近似值,这可能导致计算错误。为了解决这个问题,C#引入了`decimal`类型,它是一种定点数类型,适合进行货币计算和其他需要高精度的场合。 标题"处理多位小数...

    float类型在内存中数值转换工具

    这个"float类型在内存中数值转换工具"的主要功能就是处理这些问题,它能够计算出`float`在内存中的二进制表示,将浮点数转化为内存值(如十六进制表示),同时也可以将内存值解析回浮点数。这对于跨平台编程、调试...

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

    然而,十进制系统中的一些小数无法用二进制数精确表示,从而导致精度问题。 例如,十进制数0.1无法用二进制数精确表示,因为它是一个无限循环的小数。在二进制系统中,0.1的表示方式是无限循环的,因此无法用浮点数...

    Java 精确计算-double-float-String

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

    float2ascii.rar_acsii浮点_ascii2float_ascii转换float_float转化为ascii_转

    对于开发者来说,验证转换的正确性和效率是至关重要的,因为浮点数的精度和表示范围可能会导致一些复杂情况。 标签中的"ascii2float"则代表了反向操作,即将ASCII表示的浮点数字符串转换回原始的浮点数。在C语言中...

    浮点数计算为什么会出错

    在二进制中,这个问题更加严重,因为0.1在二进制中是一个无限循环小数,这导致了它无法被二进制表示精确存储。当计算机尝试存储这样的数时,只能存储一个近似值,因此运算结果也会是近似值。 例如,计算0.1f*0.1f的...

    深入理解单精度浮点运算

    为了提高计算的精确度,可以采取以下几种方法: 1. **选择合适的算法**:某些算法比其他算法更能抵抗浮点误差的影响。例如,在求解线性方程组时,使用高斯消元法相比直接求逆矩阵的方法更稳定。 2. **避免减法灾难*...

    Float(浮动)导致的父容器背景不显示的解决方法

    然而,`Float` 的使用有时会导致父容器的一些意外行为,比如背景颜色无法正常显示,这通常被称为“浮动塌陷”。本文将详细介绍这种现象以及两种有效的解决方法。 ### 一、浮动塌陷现象 当一个元素设置了`float:...

    Test_int_to_float.rar_float

    4. **精度问题**:由于`float`的精度低于`double`,在进行转换时要考虑可能的精度损失。如果需要更高精度,应使用`double`代替`float`。 5. **异常处理**:在进行类型转换时,如果`int`值超出了`float`的最大表示...

    基于C++浮点数(float、double)类型数据比较与转换的详解

    在实际开发中,为了确保较高的精度,通常建议使用`double`类型而不是`float`,特别是在涉及数值计算和转换的时候。同时,当将浮点数转换为字符串时,使用`%.8lf`作为精度设置可以提供足够的显示精度,但需注意这并不...

    浮点数计算软件.zip

    国际标准IEEE 754定义了浮点数的存储规范,包括单精度(32位,也称作FLOAT)和双精度(64位,也称作DOUBLE)两种形式。这个软件很可能就是基于这个标准来工作的。 在单精度浮点数中,4字节(32位)的数据被分为三...

    float相关知识

    这导致了浮点数运算的不精确性,有时会出现微小的误差,即浮点数不平等现象:两个看似相等的浮点数可能因为精度问题而无法判断为相等。 ### 浮点数运算 浮点数运算包括加法、减法、乘法和除法。这些运算在计算机中...

    test_FLOAT.rar_float_float Visual_floatTest下载_testfloat_zxj10

    通过这个"test_FLOAT.rar"包,开发者可以深入学习浮点数的存储机制,提高对数值计算的理解,这对于优化计算性能、处理精度问题和解决相关bug都是非常有价值的。对于那些对底层计算机科学感兴趣或者从事相关开发工作...

    mysql下float类型使用一些误差详解

    1. 精度问题:由于单精度浮点数的特性,某些数值无法精确存储,可能导致计算误差。 2. 范围限制:超出特定范围的数值可能无法正确存储,会报错。 3. 比较不精确:浮点数的比较操作可能因为近似值的存在而产生误导。 ...

Global site tag (gtag.js) - Google Analytics