`
kingquake21
  • 浏览: 268614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Double型的精确四则运算

 
阅读更多
在JAVA中进行double的四则运算时,结果不一定正确
doublea=0.05;
doubleb=0.01;
System.out.println(a
+b);//输出0.060000000000000005
doublea=1.0;
doubleb=0.42;
System.out.println(a
-b);//0.5800000000000001
doublea=100;
doubleb=4.015;
System.out.println(a
*b);//401.49999999999994
doublea=123.3;
doubleb=100;
System.out.println(a
/b);//输出1.2329999999999999
doublea=123.4;
doubleb=100;System.out.println(a/b);//输出1.234

对于需要精确结果的java程序,可以采用java.math.BigDecimal来实现
例如加法运算:
publicstaticdoubleadd(doublev1,doublev2)...{
BigDecimalb1
=newBigDecimal(Double.toString(v1));
BigDecimalb2
=newBigDecimal(Double.toString(v2));
returnb1.add(b2).doubleValue();
}
注意:此处构造BigDecimal时必须用字符串形式,否则同样达不到精确效果
publicstaticdoubleminus(doublev1,doublev2)...{
BigDecimalb1
=newBigDecimal(v1);
BigDecimalb2
=newBigDecimal(v2);
returnb1.subtract(b2).doubleValue();
}
doublea=1;
doubleb=0.42;
System.out.println(minus(a,b));
//0.5800000000000001
分享到:
评论

相关推荐

    java.四则运算器

    在四则运算中,根据输入的数字类型,可能需要进行类型转换,例如将`int`转换为`double`以执行精确的浮点运算。 接下来,我们将探讨运算符的使用。在Java中,加法运算符是`+`,减法是`-`,乘法是`*`,除法是`/`。...

    数据结构的作业 实现四则运算的代码

    1. **数据类型与变量**:在实现四则运算时,首先要确定我们使用的数据类型,可能是整型(如int)、浮点型(如float)或双精度浮点型(如double),取决于我们期望的精度和运算结果范围。变量用于存储待运算的数字和...

    Kotlin 四则运算 (加、减、乘、除)

    在四则运算中,数字默认被视为`Double`类型,除非明确声明为其他类型。 **2. 运算符** Kotlin提供了标准的四则运算符: - 加法:`+` - 减法:`-` - 乘法:`*` - 除法:`/` 此外,还有取余运算符(模运算):`%`,...

    四则运算调试 C++

    1. 类型转换:在C++中,不同数据类型的变量进行四则运算时,会自动进行类型提升(type promotion),如将int提升到double进行运算。但若未正确处理,可能会导致精度损失或意外结果。例如,将大整数与小整数相加可能...

    四则运算——C语言代码

    本项目围绕“四则运算”这一主题,通过C语言实现基本的数学计算功能,这对于初学者理解控制流程、变量、运算符等核心概念至关重要。 在C语言中,四则运算包括加法(+)、减法(-)、乘法(*)和除法(/)。这些...

    四则运算计算器VC++

    四则运算计算器是一种基本的计算机程序,用于执行数学中的加法、减法、乘法和除法等基本操作。在本项目中,我们讨论的是一个使用C++编程语言实现的四则运算计算器,特别地,它是用Microsoft Visual C++(简称VC++)...

    sizeyunsuan.rar_加减乘除 四则运算_四则运算

    在IT领域,尤其是在编程和计算机科学中,四则运算(加减乘除)是基本的数学操作,它们构成了计算逻辑的基础。"sizeyunsuan.rar_加减乘除 四则运算_四则运算"这个标题暗示了我们将讨论的是如何在编程环境中执行这些...

    四则运算(Demo)

    四则运算在编程中的实现通常涉及到基础的数据类型,如整数(int)和浮点数(float或double)。在C#中,我们可以直接使用加号"+"、减号"-"、乘号"*"和除号"/"来执行这些运算。例如: ```csharp int a = 5; int b = 3; ...

    C语言堆栈写的四则运算源码

    根据给定的信息,本文将对"C语言堆栈写的四则运算源码"进行详细解析,主要涉及以下几个方面:代码的功能介绍、重要函数的作用与实现原理、整体算法流程以及部分核心代码段落的具体分析。 ### 一、代码功能概述 本...

    78 matlab符号矩阵的四则运算.zip

    本资料“78 matlab符号矩阵的四则运算.zip”可能包含一系列教程或示例,讲解如何在MATLAB中进行符号矩阵的加法、减法、乘法和除法等基本四则运算。现在,我们将详细探讨这些概念。 首先,创建符号矩阵需要使用`syms...

    用面向对象方法设计实现整数的四则运算(java).pdf

    在这个示例中,我们看到一个简单的面向对象设计,用于实现整数的四则运算(加、减、乘、除)。以下是相关知识点的详细说明: 1. **接口(Interface)**: `Operation` 接口定义了四个方法,分别是 `add()`、`cut()...

    C语言超大数四则运算PPT课件.pptx

    【C语言超大数四则运算】在编程中,尤其是涉及到大整数处理时,标准的数据类型如`int`和`long`往往无法满足需求,因为它们存在存储范围的限制。例如,`int`通常为32位,能表示的整数范围是-32768至32767,而`long ...

    C语言超大数四则运算PPT学习教案.pptx

    【C语言超大数四则运算】是指在C语言中处理超出标准整型或浮点型数据范围的大整数的算术操作。由于C语言的标准数据类型如`int`、`long`、`float`和`double`都有其固定的位宽和精度限制,因此在进行大数运算时,不能...

    符号计算篇:16matlab符号矩阵的四则运算.zip

    在本主题中,我们将深入探讨MATLAB中的符号矩阵及其在四则运算中的应用。符号计算提供了一种精确且灵活的方式来执行加法、减法、乘法和除法,尤其在涉及复杂数学问题时,它可以避免浮点误差,确保结果的精确性。 一...

    iOS NSDecimalNumber解决数值计算不精确问题,一句话解决精确计算,精确比较

    在计算机内部,浮点数(如float和double)是用二进制表示的,但不是所有十进制小数都能精确地转换为二进制,这就会导致一些看似简单的数学运算结果出现误差。例如,0.1 + 0.2在二进制表示下并不等于0.3,这就是...

    C++算术四则运算,随机数种子,除法整除,减法第一位大,统计所答题目各个运算正确率

    在C++编程中,算术四则运算包括加法(+)、减法(-)、乘法(*)和除法(/)。这些基本运算符用于处理数值类型的数据,如整型(int)、浮点型(float)或双精度浮点型(double)。以下是关于这些知识点的详细解释: ...

    matlab零基础入门符号计算:41 符号矩阵的四则运算 (含教学视频).zip

    在这个“matlab零基础入门符号计算:41 符号矩阵的四则运算”教程中,我们将深入探讨如何使用MATLAB进行符号矩阵的加、减、乘和除运算。 首先,理解符号变量的概念是至关重要的。在MATLAB中,我们通过syms命令来...

    Java版计算器支持四则混合运算.+-*/()

    在编程领域,构建一个能处理四则混合运算的计算器是一项基础但重要的任务。在这个Java实现的版本中,我们关注的核心知识点主要包括:基本算术运算符、运算符优先级、小数点处理以及程序设计的基本结构。 首先,让...

    jisuanqi.rar_double精度

    在这个"jisuanqi.rar_double精度"的压缩包中,我们关注的是在VC++环境下,使用double类型进行四则运算时可能出现的精度丢失问题。double类型是C++中用于表示浮点数的一种数据类型,具有较高的精度,但并非无限精确。...

    cc科学计算器c++(qt)实现.zip

    本项目采用C++语言和Qt框架,实现了功能丰富的科学计算器,包括四则运算、括号处理、小数计算以及正负数运算。通过分析此项目的源码,我们可以深入理解数据类型、运算符优先级、中缀表达式到后缀表达式的转换,以及...

Global site tag (gtag.js) - Google Analytics