- 浏览: 47277 次
文章分类
最新评论
java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:
第一种:BigDecimal(double val)
Translates a double into a BigDecimal.
第二种:BigDecimal(String val)
Translates the String repre sentation of a BigDecimal into a BigDecimal.
使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。
public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)
public static double round(double v,int scale)
最后整理了一下BigDecimal 的比较大小。
这是输出结果: -1,0 ,1
解释下载注释里面了。
补充:
BigInteger 也可以存放比较大的数, 和 BigDecimal 的区别是 :BigInteger 存放的是大的整数,而BigDecimal 存放大的小数
继续补充一下,用BigDecimal 写个for循环。
控制台打印的是从0 到 10 。
第一种:BigDecimal(double val)
Translates a double into a BigDecimal.
第二种:BigDecimal(String val)
Translates the String repre sentation of a BigDecimal into a BigDecimal.
使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,然后够造成BigDecimal,在其中一个上调用add方法,传入另一个作为参数,然后把运算的结果(BigDecimal)再转换为浮点数。
public static double add(double v1,double v2)
public static double sub(double v1,double v2)
public static double mul(double v1,double v2)
public static double div(double v1,double v2)
public static double div(double v1,double v2,int scale)
public static double round(double v,int scale)
import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。 */ public class Arith{ //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; //这个类不能实例化 private Arith(){ } /** * 提供精确的加法运算。 * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * 提供精确的减法运算。 * @param v1 被减数 * @param v2 减数 * @return 两个参数的差 */ public static double sub(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * 提供精确的乘法运算。 * @param v1 被乘数 * @param v2 乘数 * @return 两个参数的积 */ public static double mul(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.multiply(b2).doubleValue(); } /** * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 * 小数点以后10位,以后的数字四舍五入。 * @param v1 被除数 * @param v2 除数 * @return 两个参数的商 */ public static double div(double v1,double v2){ return div(v1,v2,DEF_DIV_SCALE); } /** * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 * 定精度,以后的数字四舍五入。 * @param v1 被除数 * @param v2 除数 * @param scale 表示表示需要精确到小数点以后几位。 * @return 两个参数的商 */ public static double div(double v1,double v2,int scale){ if(scale<0){ throw new IllegalArgumentException( "The scale must be a positive integer or zero"); } BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 提供精确的小数位四舍五入处理。 * @param v 需要四舍五入的数字 * @param scale 小数点后保留几位 * @return 四舍五入后的结果 */ public static double round(double v,int scale){ if(scale<0){ throw new IllegalArgumentException("The scale must be a positive integer or zero"); } BigDecimal b = new BigDecimal(Double.toString(v)); BigDecimal one = new BigDecimal("1"); return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } };
最后整理了一下BigDecimal 的比较大小。
BigDecimal num1 = new BigDecimal("0"); BigDecimal num2 = new BigDecimal("1"); BigDecimal num3 = new BigDecimal("2"); BigDecimal num = new BigDecimal("1"); //用做比较的值 System.out.println(num1.compareTo(num)); //小于 时,返回 -1 System.out.println(num2.compareTo(num)); //等于 时,返回 0 System.out.println(num3.compareTo(num)); //大于 时,返回 1
这是输出结果: -1,0 ,1
解释下载注释里面了。
补充:
BigInteger 也可以存放比较大的数, 和 BigDecimal 的区别是 :BigInteger 存放的是大的整数,而BigDecimal 存放大的小数
继续补充一下,用BigDecimal 写个for循环。
for (BigDecimal i = new BigDecimal("0"); i.compareTo(new BigDecimal("10")) != 1; i = i.add(new BigDecimal("1"))) { System.out.print(i + "\t"); }
控制台打印的是从0 到 10 。
发表评论
-
全角半角混在截取固定位数
2015-08-27 18:29 724package zkktest; import java ... -
java读写txt文件
2015-04-22 11:06 649import java.io.BufferedReader; ... -
struts2前后台传值汇总-(4)ServletRequestAware-http格式
2015-03-13 22:20 759后台调用ServletRequestAwa ... -
struts2前后台传值汇总-(3)ServletActionContext-http格式
2015-03-13 22:08 705后台调用ServletActionContext.getS ... -
struts2前后台传值汇总-(2)RequestAware-map格式
2015-03-13 21:51 1399后台继承RequestAware,SessionAware ... -
struts2前后台传值汇总-(1)ActionContext-map格式
2015-03-13 21:38 1198后台调用ActionContext中的getObject( ... -
复制新项目注意事项
2015-02-25 22:24 711当你从别的项目复制为一个新项目的时候,需要.修改Web p ... -
用java进行文件转码方法
2015-01-30 16:01 921用java进行文件转码方法 BufferedReader ... -
java文件转码方法
2015-01-30 16:01 1BufferedReader br = new Buffer ... -
导zip4j_1.3.2.jar包,出力压缩加密csv文件
2015-01-21 11:49 794导包 入口 public static ... -
不导包,压缩出力csv文件
2015-01-21 11:38 1005最近研究压缩csv文件出力,根据网上资料,整理了一套用不导 ... -
学习:java设计模式—工厂模式
2015-01-09 19:01 574一、工厂模式主要是 ... -
Eclipse CVS更换帐号的方法
2014-08-18 11:43 676使用CVS进行版本控制,当要提交一个文件时,发现需要重新输入C ... -
BigDecimal属性
2014-04-23 09:56 824BigDecimal abs() ... -
简单的ArrayList去重
2014-04-10 09:18 692public static void main(String[ ... -
正则表达式使用
2014-03-20 11:19 568java.lang包中的String类,java.util.r ... -
System.out.println()和System.out.write()的区别
2014-02-06 15:47 580这两个函数一个是System.out.write()输出字符流 ... -
Java中throw和throws的区别
2014-02-06 15:45 447系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自 ... -
全角半角转换问题
2013-12-05 13:17 1128网上找个日文全角半角转换的方法。整理如下: public c ...
相关推荐
Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...
bigdecimal加减乘除运算
bigdecimal加减乘除运算
6.3BigDecimal加减乘除.txt
bigdecimal加减乘除
BigDecimal加减乘除工具包,提供了BigDecial操作以及保留小数位数
但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作,下面这篇文章给大家介绍了Java中BigDecimal的加减乘除、比较大小与使用注意事项,需要的朋友可以参考下。
本篇文章主要介绍了【Java】BigDecimal实现加减乘除运算代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
js中操作Bigdecimal类,包含所有java中bigdecimal的操作,加减乘除,四舍五入,比较等。
JS小数加减乘除运算后小数点后产生多位数和计算精度损失的解决方案
唔,其实里面就是一个工具类,加减乘除、保留两位小数。一共5个方法。。。emmmm.....为啥分这么高呢。因为宝宝想分想疯了。 附代码,有土豪就打赏打赏,没土豪的直接拿去使吧。 package cn.cisdom.base.utils; ...
大家应该对于不需要任何准确计算精度的数字可以直接使用float或double运算,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且...下面这篇文章就给大家介绍介绍关于java中BigDecimal进行加减乘除的基本用法。
Java对BigDecimal常用方法的归类(加减乘除).doc
Java计算器 实现最简单的加减乘除、开方、求倒数等。
Kotlin 四则运算 (加、减、乘、除)
使用例 <!-- function //+ alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new ...
java丢失精度,bigdecimal加减乘除
支持+-*/,格式化数字,四舍五入等,BigDecimal精准处理
一些工具类代码块的集合: 提供精确的加法运算 ...当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入 提供精确的小数位四舍五入处理 取余数 取余数 BigDecimal 比较大小 获取自己想要的数据格式
bigdecimal加减乘除运算