`

浮点数计算

 
阅读更多

 

@Test

public void test2() throws Exception {

System.out.println( 0.05 + 0.01 );

System.out.println( 1.0 - 0.42 );

System.out.println( 4.015 * 100 );

System.out.println( 123.3 / 100 );

System.out.println( ( 1.2 - 0.3 ) == 0.9 );

System.out.println(0.2 + 0.1);

        System.out.println(0.3 - 0.1);

        System.out.println(0.2 * 0.1);

        System.out.println(0.3 / 0.1);

System.out.println( 0.20 + 0.4 );

}

 

结果

0.060000000000000005

0.5800000000000001

401.49999999999994

1.2329999999999999

false

0.30000000000000004

0.19999999999999998

0.020000000000000004

2.9999999999999996

0.6000000000000001

 

 

原因

 

我们的计算机在存储小数时肯定是有长度限制的,所以会进行截取部分小数进行存储,从而导致计算机存储的数值只能是个大概的值,而不是精确的值。从这里看出来我们的计算机根本就无法使用二进制来精确的表示 2.1 这个十进制数字的值,连表示都无法精确表示出来,计算肯定是会出现问题的。

 

现有有三种办法

  1. 如果业务不是必须非常精确的要求可以采取四舍五入的方法来忽略这个问题。
  2. 转成整型再进行计算。
  3. 使用 BCD 码存储和运算二进制小数(感兴趣的同学可自行搜索学习)。

一般每种语言都用高精度运算的解决方法(比一般运算耗费性能),比如 Python 的 decimal 模块,Java 的 BigDecimal

 

 

 

 

 

 

<audio controls="controls" style="display: none;"></audio>

<audio controls="controls" style="display: none;"></audio>

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    4字节浮点数计算工具

    本文将详细讨论“4字节浮点数计算工具”及其相关的知识点,包括浮点数的表示、16进制与10进制的转换以及在电力通信规约中的应用。 首先,浮点数是一种用于表示实数的数据类型,广泛应用于科学计算和计算机图形学等...

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

    在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...

    4字节浮点数计算工具1.01 .exe

    4字节浮点数计算工具

    浮点数计算软件.zip

    浮点数计算软件是一款专为理解和处理浮点数计算而设计的应用程序,它能够帮助用户了解4字节的二进制数值如何表示浮点数,这对于通讯传输和算法调试等场景具有很高的实用价值。在IT行业中,理解浮点数的表示和计算...

    表达式计算(浮点数计算)

    表达式计算(浮点数计算) 本篇文章主要介绍了浮点数计算的实现方法,通过分析给定的代码,解释了浮点数表达式计算的原理和实现细节。 一、浮点数表达式计算概述 浮点数表达式计算是指对浮点数表达式进行计算的...

    浮点数计算与误差分析

    ### 浮点数计算与误差分析 #### 一、浮点数的基本概念 浮点数是一种用于表示实数的数据类型,广泛应用于计算机科学中的数值计算领域。为了更好地理解浮点数及其运算中可能出现的误差问题,我们需要从浮点数的表示...

    自己写的浮点数计算误差分析

    浮点数计算是计算机科学中的一个关键领域,特别是在数值计算、科学计算以及工程应用中扮演着重要角色。然而,由于浮点数在计算机中的表示方式和计算过程中的限制,浮点计算往往会产生误差。这篇自己编写的分析文章...

    IEEE浮点数计算机内二进制表示显示.vi

    **标题解析:** ...总之,“IEEE浮点数计算机内二进制表示显示.vi”涉及的是使用LabVIEW创建的一个工具,用于教学或分析IEEE 754浮点数的内部二进制表示,这对于理解和处理浮点数计算及其潜在问题非常有帮助。

    浮点数计算为什么会出错

    浮点数计算错误是计算机科学中的一个经典问题,它源于计算机用二进制格式存储数字的方式,以及二进制在表示某些十进制小数时的局限性。首先,需要了解的是,浮点数不是计算机中用于表示小数的精确方式。计算机使用的...

    ieee754浮点数计算

    ieee754浮点数计算

    简易计算器,MFC完成(支持浮点数计算)

    在本项目中,"简易计算器,MFC完成(支持浮点数计算)"是一个使用Microsoft Foundation Class (MFC) 库开发的简单计算器应用程序。MFC是微软为Windows平台提供的一个C++类库,它封装了Windows API,使得开发者能够更...

    浮点数计算工具

    输入的时候有两个选项:请收入需要转换的浮点数,这个时候如果是想将十进制的数据转换为浮点数的话 直接输入十进制 如果将报文数据转换成十进制的话就需要在一开始的时候先随便输入一个数据跳过“请收入需要转换的...

    浮点数计算软件、工控计算器

    输入4个字节的浮点数,自动装换成浮点数。还有16进制转换

    STEP7-300浮点数计算的时候怎么设置保留的小数位数呢

    STEP7-300浮点数计算的时候怎么设置保留的小数位数呢

    JavaScript解决浮点数计算不准确问题的方法分析

    JavaScript中的浮点数计算不准确问题源于其内部的二进制表示方式,导致某些浮点数无法精确存储,从而在进行运算时出现误差。在计算机系统中,浮点数通常按照IEEE 754标准存储,双精度浮点数(JavaScript默认使用)的...

    小工具集合 浮点数计算

    小工具集合:各种数据格式转换;CRC码计算;按位与and/按位或or 等等。很强大很好用

    浮点数的计算方法

    ### 浮点数的计算方法 #### 一、引言 在计算机科学中,浮点数是一种用于表示实数的数据类型。它通过一种特定的方式来存储数值,使得可以在有限的存储空间内表示非常大或非常小的数值。浮点数的表示方法主要遵循...

    Delphi GMP任意精度整数、有理数、浮点数计算库

    Delphi GMP库是一个强大的计算工具,专为在Delphi编程环境中处理任意精度整数、有理数和浮点数而设计。这个库基于GNU Multiple Precision Arithmetic Library (GMP),一个广泛使用的开源库,用于执行高精度计算。GMP...

    IEEE754浮点数计算程序

    通过这个程序,你可以深入理解浮点数在计算机中的表示和计算过程,这对于进行高性能计算、数值分析或编程语言的底层实现至关重要。它可以帮助你更好地调试浮点运算相关的错误,以及优化依赖浮点精度的算法。

    定点数浮点数计算 加减乘除

    定点数和浮点数是两种常见的数字表示方式,它们各有特点,适用于不同的计算场景。本课件详细介绍了这两种数字表示方法以及如何进行加减乘除运算。 定点数,顾名思义,是指小数点的位置固定不变的数。它分为两类:有...

Global site tag (gtag.js) - Google Analytics