java中小数处理,bigDecimal类应用
2018-06-27 09:59:33来源:未知 阅读 ()
1、构造一个BigDecimal对象:
//创建一个BigDecimal对象,初始化必须使用字符串,因为用数值初始化会得到近似值,不准确 BigDecimal bigDecimalOne = new BigDecimal("1.232324"); //将浮点数装换成BigDecimal对象 double d = 1.3422424; BigDecimal bigDecimalTwo =BigDecimal.valueOf(d);
2、BigDecimal成员方法:
//bigDecimalOne加上bigDecimalTwo,然后返回一个新对象 bigDecimalOne.add(bigDecimalTwo); //bigDecimalOne减去bigDecimalTwo,然后返回一个新对象 bigDecimalOne.subtract(bigDecimalTwo); //bigDecimalOne乘以bigDecimalTwo,然后返回一个新对象 bigDecimalOne.multiply(bigDecimalTwo); //bigDecimalOne除以bigDecimalTwo,然后返回一个新对象 bigDecimalOne.divide(bigDecimalTwo);
3、BigDecimal对象转化成基本数据类型:
//BigDecimal对象的数值转换成对应的字符串 bigDecimalOne.toString(); //BigDecimal对返回double值 bigDecimalOne.doubleValue(); //BigDecimal对返回float bigDecimalOne.floatValue(); //BigDecimal对返回long值 bigDecimalOne.longValue(); //BigDecimal对返回int值 bigDecimalOne.intValue();
4、BigDecimal工具类:
import java.math.BigDecimal; public class BigDecimalUtil { private static final int DEF_DIV_SCALE = 10; private BigDecimalUtil(){} /** * 精准的加法运算 * @param v1 * @param v2 * @return */ public static double add(double v1,double v2){ BigDecimal b1 = BigDecimal.valueOf(v1); BigDecimal b2 = BigDecimal.valueOf(v2); return b1.add(b2).doubleValue(); } /** * 精确减法计算 * @param v1 * @param v2 * @return */ public static double sub(double v1,double v2){ BigDecimal b1 = BigDecimal.valueOf(v1); BigDecimal b2 = BigDecimal.valueOf(v2); return b1.subtract(b2).doubleValue(); } /** * 精确乘法计算 * @param v1 * @param v2 * @return */ public static double mul(double v1,double v2){ BigDecimal b1 = BigDecimal.valueOf(v1); BigDecimal b2 = BigDecimal.valueOf(v2); return b1.multiply(b2).doubleValue(); } /** * 精确除法计算 * @param v1 * @param v2 * @return */ public static double div(double v1,double v2){ BigDecimal b1 = BigDecimal.valueOf(v1); BigDecimal b2 = BigDecimal.valueOf(v2); return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue(); } public static void main(String[] args) { double d1 = 12.897; double d2 = 3.87; System.out.println(BigDecimalUtil.add(d1,d2)); System.out.println(BigDecimalUtil.sub(d1, d2)); System.out.println(BigDecimalUtil.mul(d1, d2)); System.out.println(BigDecimalUtil.div(d1, d2)); } }
5、java中舍入方式:
第一种方法:
//保留两位小数 double db = bigDecimalTwo.setScale(2, RoundingMode.HALF_UP).doubleValue(); System.out.println(db);
第二种方法:
//保留两位小数 DecimalFormat df = new DecimalFormat("#.00"); df.format(bigDecimalTwo);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash