package cn.itcast_01;/** 看程序写结果:结果和我们想的有一点点不一样,这是因为float类型的数据存储和整数不一样导致的。它们大部分的时候,都是带有有效数字位。* * 由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal* * BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。*/
public class BigDecimalDemo {public static void main(String[] args) {System.out.println(0.09 + 0.01);System.out.println(1.0 - 0.32);System.out.println(1.015 * 100);System.out.println(1.301 / 100);System.out.println(1.0 - 0.12);}
}
0.09999999999999999
0.6799999999999999
101.49999999999999
0.013009999999999999
0.88
package cn.itcast_02;import java.math.BigDecimal;/** 构造方法:*       public BigDecimal(String val)* * public BigDecimal add(BigDecimal augend)* public BigDecimal subtract(BigDecimal subtrahend)* public BigDecimal multiply(BigDecimal multiplicand)* public BigDecimal divide(BigDecimal divisor)* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取*/
public class BigDecimalDemo {@SuppressWarnings("deprecation")public static void main(String[] args) {// System.out.println(0.09 + 0.01);// System.out.println(1.0 - 0.32);// System.out.println(1.015 * 100);// System.out.println(1.301 / 100);BigDecimal bd1 = new BigDecimal("0.09");BigDecimal bd2 = new BigDecimal("0.01");System.out.println("add:" + bd1.add(bd2));System.out.println("-------------------");BigDecimal bd3 = new BigDecimal("1.0");BigDecimal bd4 = new BigDecimal("0.32");System.out.println("subtract:" + bd3.subtract(bd4));System.out.println("-------------------");BigDecimal bd5 = new BigDecimal("1.015");BigDecimal bd6 = new BigDecimal("100");System.out.println("multiply:" + bd5.multiply(bd6));System.out.println("-------------------");BigDecimal bd7 = new BigDecimal("1.301");BigDecimal bd8 = new BigDecimal("100");System.out.println("divide:" + bd7.divide(bd8));System.out.println("divide:"+ bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));System.out.println("divide:"+ bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));}
}
add:0.10
-------------------
subtract:0.68
-------------------
multiply:101.500
-------------------
divide:0.01301
divide:0.013
divide:0.01301000

java BigDecimal相关推荐

  1. java bigDecimal and double

    Java BigDecimal和double BigDecimal是Java中用来表示任意精确浮点数运算的类,在BigDecimal中,使用unscaledValue × 10-scale来表示一个浮 ...

  2. Java BigDecimal详解

    Java BigDecimal详解 1. BigDecimal概述 2. BigDecimal方法 2.1 BigDecimal常用构造函数 2.2 BigDecimal常用方法详解 3. BigDe ...

  3. Java BigDecimal常用方法

    BigDecimal:计算时,对数据精度要求较高时使用,例如:钱 基础用法: import java.math.BigDecimal;/*** * @title: BigDecimal测试* @aut ...

  4. java BigDecimal实现精确加减乘除运算

    原文:http://blog.csdn.net/shadow_zed/article/details/73522157 import java.math.BigDecimal;/*** 由于Java的 ...

  5. java: BigDecimal 调用add后,求和结果没有变化

    BigDecimal使用add时,原数没有不变. BigDecimal 的 add方法是,调用者不变. 因此,对结果进行接收.改为如下 package com.baobaotao;import jav ...

  6. java bigdecimal语法_JAVA BigDecimal 小数点处理

    语法:// 返回小数点后位数 BigDecimal.setScale(); // setScale len参数指定小数点后位数 BigDecimal.setScale(len); PS: setSca ...

  7. 去掉 java BigDecimal 类对象后面没用的零

    2019独角兽企业重金招聘Python工程师标准>>> 方法一 使用:stripTrailingZeros().toPlainString() import java.util.*; ...

  8. java bigdecimal赋值_Java中BigDecimal类介绍及用法(亲测)

    Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是 ...

  9. Java BigDecimal初探

    更新时间:2016-03-17 一.引言 <Effactive Java>中有这样的描述:float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为 ...

  10. java BigDecimal八种舍入模式

    一.BigDecimal介绍 java.math.BigDecimal 不可变的immutable.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scal ...

最新文章

  1. 实用的人工智能 但数据 Python 速查表
  2. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码
  3. 【学习心得】当程序员思路被打断
  4. 蓄电池充放电试验培训课件
  5. python库怎么绘画_python基础,安装并使用matplotlib库画图
  6. 阿里云OSS搭建移动应用直传服务的.Net C#示例
  7. 职业生涯发展技巧20则
  8. 单页面 Web 应用(Single Page Application,SPA)的工作原理介绍
  9. 了解OAuth2令牌认证
  10. 联合查询(查找所有分类及其父类)
  11. 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
  12. Shell教程----Shell脚本
  13. 8.Jenkins 权威指南 --- 自动化部署和持续交付
  14. java中的回调函数
  15. emacs linux 教程,Emacs基础入门教程(三)使用 Emacs 必知必会
  16. Redis 未授权访问 CNNVD-201511-230 漏洞复现
  17. 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...
  18. 基于SpringBoot的毕业设计题目
  19. LR 的上传文件与下载文件
  20. 史上最详尽的RGB-D传感器选型调研报告

热门文章

  1. 【基础知识】RMAN基础知识-Part2
  2. 2022年国家法定节假日配置MySql
  3. h5py使用基础笔记
  4. py使用bar绘制堆积/带误差棒柱形图
  5. 樊胜美有可能跑到与安迪一样的终点…
  6. 微同城生活圈小程序源码系统+前后端+搭建教程
  7. 第六讲 Keras实现手写字体识别分类
  8. c语言坦克大战程序设计,C语言坦克大战源码分析
  9. 母牛生小牛问题-字节跳动笔试题
  10. 面试 HTTP ,99% 的面试官都爱问这些问题