java double的加法_java Double 进行加减乘除
package org.fh.util;import java.io.Serializable;import java.math.BigDecimal;import java.math.RoundingMode;/**
* double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型
* 整型地方法适合于货币精度已知的情况,比如12.11+1.10转成1211+110计算,最后再/100即可 以下是摘抄的BigDecimal方法:
*//**
* 说明:Double工具类
* from:www.1b23.com
*/
public cla s s DoubleUtil implements Serializable {private static final long serialVersionUID = -3345205828566485102L;// 默认除法运算精度
private static final Integer DEF_DIV_SCALE = 2;/**
* 提供精确的加法运算。
*
* @param value1 被加数
* @param value2 加数
* @return 两个参数的和
*/
public static Double add(Double value1, Double value2) {
BigDecimal b1 = new BigDecimal(Double.toString(value1));
BigDecimal b2 = new BigDecimal(Double.toString(value2));return b1.add(b2).doubleValue();
}/**
* 提供精确的减法运算。
*
* @param value1 被减数
* @param value2 减数
* @return 两个参数的差
*/
public static double sub(Double value1, Double value2) {
BigDecimal b1 = new BigDecimal(Double.toString(value1));
BigDecimal b2 = new BigDecimal(Double.toString(value2));return b1.subtract(b2).doubleValue();
}/**
* 提供精确的乘法运算。
*
* @param value1 被乘数
* @param value2 乘数
* @return 两个参数的积
*/
public static Double mul(Double value1, Double value2) {
BigDecimal b1 = new BigDecimal(Double.toString(value1));
BigDecimal b2 = new BigDecimal(Double.toString(value2));return b1.multiply(b2).doubleValue();
}/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时, 精确到小数点以后10位,以后的数字四舍五入。
*
* @param dividend 被除数
* @param divisor 除数
* @return 两个参数的商
*/
public static Double divide(Double dividend, Double divisor) {return divide(dividend, divisor, DEF_DIV_SCALE);
}/**
* 提供(相对)精确的除法运算。 当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入。
*
* @param dividend 被除数
* @param divisor 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static Double divide(Double dividend, Double divisor, Integer scale) {if (scale
}
BigDecimal b1 = new BigDecimal(Double.toString(dividend));
BigDecimal b2 = new BigDecimal(Double.toString(divisor));return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue();
}/**
* 提供指定数值的(精确)小数位四舍五入处理。
*
* @param value 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double value, int scale) {if (scale
}
BigDecimal b = new BigDecimal(Double.toString(value));
BigDecimal one = new BigDecimal("1");return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue();
}
}
java double的加法_java Double 进行加减乘除相关推荐
- java double 的精度_java double类型相加精度问题的解决
我就废话不多说了,大家还是直接看代码吧~ package com.hxyl.action; import java.text.DecimalFormat; public class Test { pu ...
- java double 的精度_Java Double的精度问题
Java.text 类 DecimalFormat java.lang.Object java.text.Format java.text.NumberFormat java.text.Decimal ...
- java中multiply用法_java中BigDecimal加减乘除基本用法
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数. 在实际应用中,需要对更大或者更小的数进 ...
- 怎么设置java的精度值_Java:如何为double值设置Precision?
本问题已经有最佳答案,请猛点这里访问. 我最近正在处理数字,我有一种情况,我想将双精度值的精度设置为6位或4位,这取决于数据库中存储的值. 例如,如果在数据库中,精度设置为4位,则输出必须如下所示: ...
- java double方法_Java Double类compare()方法与示例
java double方法 双类compare()方法 (Double class compare() method) compare() method is available in java.la ...
- java double 保留小数_java使double类型保留两位小数的方法
java使double类型保留两位小数的方法 本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网 ...
- java 正确的表达式_JAVA程序设计课程作业,二、多选题1.指出正确的表达式A.double a=1.0B.Double a=new Dou...
JAVA程序设计课程作业,二.多选题1.指出正确的表达式A.double a=1.0B.Double a=new Dou JAVA程序设计课程作业, 二.多选题 1.指出正确的表达式 A.double ...
- java double 取余_java中double除法和取余的若干注意
1 整数除法中,除数为0,抛出一个算术异常ArithmeticException.整数取余运算中,除数为0,抛出一个ArithmeticException异常. 如: class Test { pub ...
- java double数值范围_Java中float和double的取值范围该怎样理解?
展开全部 基本类型float占4个字节,二进制位数e5a48de588b662616964757a686964616f31333366306464有32位,取值范围为[-3.4028234663852 ...
最新文章
- 微软OOXML申请国际文档标准已获通过 中国投反对票
- 002:用Python设计第一个游戏
- Kali Linux 2020.1修改root用户密码
- 查看linux java home_查看Linux中自带的jdk,设置JAVA_HOME
- 例说C#深拷贝与浅拷贝
- 形位公差符号大全_玩转CAD快捷键(大全),一篇文章就够了
- echarts绘制世界地图,中国地图在中间
- Word文档字间距怎么调?
- IC授权卡和复制卡的区别_DIY电脑——A卡和N卡有区别吗
- 无背景申请奥克兰大学计算机,奥克兰大学无背景要求的专业
- PHP网页页脚咋设计,50个网页头部与网页页脚设计欣赏
- 计算机辅助地理教学的内容,信息技术辅助地理教学
- python基础训练—数字
- redhat linux 7.2系统安装详细过程
- 咩话,event前总是要判定?
- DEDE建站如何去掉首页的index.html后缀?
- python 与and运算符
- 如何在国内优雅地使用Rancher
- vintage、迁移率、滚动率、入催率等概念——看完你就懂了
- 本地计算机上的windows installer,解决Windows installer被禁用的问题