在商品金额的计算中,经常会涉及小数运算。例如,某个商品的价格是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 } }
相关推荐
Swift视频教程:基本操作符系列 浮点数取余和自增自减
NULL 博文链接:https://kanglecjr.iteye.com/blog/2105029
DecFP.jl:通过Intel十进制浮点数库的Julia IEEE十进制浮点数
计算机组成原理:第二章浮点数.ppt
您也可以使用它来更有效地存储浮点值,以防浮点值可以放入Half中而不会损失精度。 您可以使用GetSmallestFloatType来确定Double值适合Single还是Half而不会损失精度。 该库使用Jeroen van der Zijp开发的快速转换...
浮点数和十六进制数的相互转换,包括:1.单精度浮点数(32位)和十六进制数的相互转换,2.双精度浮点数(64位)和十六进制数的相互转换。
1025:保留12位小数的浮点数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 27948 通过数: 24399 【题目描述】 读入一个双精度浮点数,保留12位小数,输出这个浮点数。 【输入】 只有一行,一个双精度浮点数。 ...
求解答案两种方式的微小差异:第一种方式是声明变量,需要先声明后使用,否则值为undefined第二种方式无此问题,函数声明,可以先使用后声明注意:“变量提升”,只是声明提前了,但值是undefined,如下面例子:...
单片机浮点数设计 单片机浮点数设计 单片机浮点数设计
利用QT/C++实现的三种方法进行十六进制与浮点数相互转化:直接方法、强制转化法和union与struct转化法,经验证有效,并附带源码。
单精度浮点数,双精度浮点数,浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。
一个小镜像类,用于使用类型化数组内省 JS 数字的位模式。 例子: Math . PI . introspect ( ) . mantissa ; // "1001001000011111101101010100010001000010110100011000" Math . E . introspect ( ) . exponent...
实例2-12:使用指针注意内存的分配。源代码在光盘中“\02\twelfthcpp”目录下。 实例2-13:引用实例。源代码在光盘中“\02\thirteencpp”目录下。 实例2-14:虚函数的使用实例。源代码在光盘中“\02\fourteencpp”...
浮点数整数转换工具,用于浮点数与整数之间相互转换
例如,浮点数50.0,在通信中传送的是它的IEEE-754格式,即4字节的十六进制424800H.因此,单片机的C程序,在发送或接收外围设各的参数值时,需要解决如何实现浮点数与IEEE格式转换的问题。 2.IEEE浮点数的格式 在...
precise-math.js用于解决javascript中浮点数精确计算的问题。目前只有三个方法,可以用于解决Javascript中金额计算的问题。PreciseMath.add(x1,x2) PreciseMath.sub(x1,x2) PreciseMath.mul(x1,x2)
labview下实现16进制转换浮点数。
C语言浮点数转字符串
浮点数开方rar,浮点数开方