`

实例24:更精准地使用浮点数

阅读更多

在商品金额的计算中,经常会涉及小数运算。例如,某个商品的价格是1.10元,而顾客现有金额2元整。在计算机中所有数字都是使用二进制进行存储的,而二进制无法精确地表示所有的小数,所以使用基本数据类型进行小数运算会有一些误差,本实例将通过BigDecimal类实现精确的小数运算。

BigDecimal类中常用的方法:

1、加法

该方法实现两个BigDecimal类实例对象的加法运算,并将运算结果作为方法的返回值。

格式:public BigDecimal add(BigDecimal  augend)

augend:与当前对象执行加法的操作数

 

2、减法

该方法实现两个BigDecimal类实例对象的减法运算,并将运算结果作为方法的返回值。

格式:public BigDecimal subtract(BigDecimal  subtrahend)

subtrahend:与当前对象执行减法的操作数

 

3、乘法

该方法实现两个BigDecimal类实例对象的乘法运算,并将运算结果作为方法的返回值。

格式:public BigDecimal multiply(BigDecimal  multiplicand)

multiplicand:乘法运算中的乘数

 

4、除法

该方法实现两个BigDecimal类实例对象的除法运算,并将运算结果作为方法的返回值。

格式:public BigDecimal divide(BigDecimal  divisor)

divisor:除法运算中的除数

 

package com.example;

import java.math.BigDecimal;

public class AccuratelyFloat {

	/**
	 * 准确的浮点数操作
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double money=2;	//现有金额
		double price=1.1;//商品价格
		double result=money-price;//两个浮点数直接相减的差  
		System.out.println("直接相减后的结果:"+result);//直接相减后的结果:0.8999999999999999
		
		//使用BigDecimal类进行运算
		BigDecimal money1=new BigDecimal("2");
		BigDecimal price1=new BigDecimal("1.1");
		BigDecimal result1=money1.subtract(price1);
		System.out.println("精确运算后的值:"+result1);//精确运算后的值:0.9
		
	}

}

 

分享到:
评论

相关推荐

    威纶通_宏指令_浮点数加减乘除开方计算机

    本教程将深入探讨如何利用威纶通宏指令进行浮点数的加、减、乘、除以及开方运算,这对于进行精准的数学计算和数据处理至关重要。 浮点数运算在很多应用中比整数运算更为复杂,因为它涉及到小数部分的处理。在威纶...

    三菱PLC 程序用到小数点的程序例子.zip

    - Q系列和L系列,支持浮点乘法(FMUL)和除法(FDIV)指令,方便地进行浮点数乘除运算。 4. **转换和比较**: - 小数与整数之间的转换需要注意数据类型转换,FX系列需要通过位操作实现,而Q系列和L系列可以直接...

    西门子PLC的ROUND指令功能和应用实例.pdf

    此外,它还能帮助简化后续的计算,因为整数操作通常比浮点数操作更快,且更不容易出错。 总的来说,西门子PLC的ROUND指令提供了一种高效且精确的方法来处理浮点数到双整型数的转换,它在保证计算精度的同时,优化了...

    MongoDB的$type操作符.pdf

    理解并熟练使用$type操作符对于MongoDB的查询优化至关重要,因为它能帮助我们精准地定位所需的数据,从而提高数据处理的效率。在实际开发中,$type操作符常用于数据分析、数据清洗以及特定条件的查询场景。通过深入...

    最最常用java编程中英文对照表 带音标

    了解这些基本的中英文对照和音标,可以帮助程序员更好地理解和记忆Java的关键概念,从而更高效地编写和阅读代码。此外,了解OOP(Object-Oriented Programming,面向对象编程)的概念,如JDK(Java Development Kit...

    西门子PLC的ROUND指令功能和应用实例.docx

    这时,你可以使用ROUND指令将浮点数四舍五入到最接近的整数,然后将结果输出到Q寄存器,驱动仪表显示。 ROUND指令的操作通常包括以下几个步骤: 1. **设定精度**:ROUND指令可以设定四舍五入的精度,即保留的小数...

    模拟量PLC编程

    2. **数据类型**:编程时,模拟量通常用浮点数或双精度浮点数表示,因为它们能更精确地表示连续的数值。例如,在梯形图编程中,使用FX系列PLC时,可能会使用DAD(双精度整数)或DFL(双精度浮点数)数据类型。 3. *...

    java精度计算代码 java指定精确小数位

    在Java编程语言中,进行精度计算时,我们经常会...这个过程可以有效地避免浮点数运算中的精度问题,确保计算结果的准确无误。在实际开发中,尤其在财务、银行等对精度要求较高的领域,使用`BigDecimal`是非常必要的。

    GPS测量编程入门源代码

    - 高精度定位:用于测绘、农业精准作业或自动驾驶等领域,需要更复杂的算法和硬件支持。 7. 学习资源: 对于初学者,可以参考开源项目、在线教程和书籍,比如《GPS接收机原理与应用》、《Python for Geospatial ...

    Labview_encoder_

    2. **数据收发**:使用“读取”函数接收编码器发送的脉冲或位置数据,并使用“写入”函数发送控制命令或配置参数。 3. **错误处理**:确保程序包含适当的错误处理机制,如超时检测和重试策略,以应对网络不稳定情况...

    PHP计算当前坐标3公里内4个角落的最大最小经纬度实例

    在PHP编程中,有时我们...总的来说,理解并掌握如何在PHP中计算经纬度范围,能够帮助开发者构建更高效、精准的地理定位功能,例如搜索附近的地点、绘制地图边界框等。结合其他PHP技术,可以创建出功能丰富的地图应用。

    前端项目-bignumber.js.zip

    相比于JavaScript中的Number,它支持更精确的数值计算,不会因为浮点数精度问题导致计算错误。以下是一些关键知识点: 1. **创建大数**:你可以通过字符串、数字或另一个大数来创建一个BigNumber实例。例如: ```...

    Python中分数的相关使用教程

    在Python编程语言中,处理分数是一项基础而重要的任务,特别是在科学计算和精确数学运算的场景。Python提供了内置的`fractions`模块,该模块包含了...学习和熟练使用Fraction类是Python程序员掌握精准数值计算的基础。

    西门子PLC模拟量输入处理范例.rar

    西门子PLC(可编程逻辑控制器)是工业自动化领域广泛应用的一种控制系统,它能处理数字和模拟信号,实现对生产设备的精准控制。在本“西门子PLC模拟量输入处理范例”中,我们将深入探讨如何利用西门子PLC处理模拟量...

    3-考试样卷信息3-考试样卷信息

    1. **大数据技术的应用**:题目中提到了大数据技术的应用实例,如知网的查重功能、电子地图的拥堵预测、政府的精准扶贫策略等。 2. **信息采集方法**:在做校运会报道时,合适的现场采集信息的方法包括现场摄像和...

    农业数据可视化数据库sql文件

    农业数据可视化数据库SQL文件是一种用于存储、管理和分析农业相关数据的数据库脚本。在现代农业中,数据已经成为决策制定...正确理解和运用这个SQL文件,能够帮助我们更好地挖掘农业数据的价值,推动农业的现代化进程。

    Redis的类库及Redis解决订单秒杀超卖问题,极光推送代码

    当用户发起购买请求时,使用`INCR`命令原子性地减少库存,如果减后值小于等于0,则表示库存不足,秒杀失败;否则,订单创建成功。 解决订单秒杀超卖问题的关键在于操作的原子性和一致性。Redis的原子操作如`INCR`、...

    Bigdecimal.js

    在IT行业中,尤其是在涉及到金融、电子商务等领域,精准的数值计算是至关重要的。"Bigdecimal.js"就是这样一个专门解决多精度小数运算问题的JavaScript库。它允许开发者在JavaScript环境中进行高精度的浮点数运算,...

Global site tag (gtag.js) - Google Analytics