java BigDecimal
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相关推荐
- java bigDecimal and double
Java BigDecimal和double BigDecimal是Java中用来表示任意精确浮点数运算的类,在BigDecimal中,使用unscaledValue × 10-scale来表示一个浮 ...
- Java BigDecimal详解
Java BigDecimal详解 1. BigDecimal概述 2. BigDecimal方法 2.1 BigDecimal常用构造函数 2.2 BigDecimal常用方法详解 3. BigDe ...
- Java BigDecimal常用方法
BigDecimal:计算时,对数据精度要求较高时使用,例如:钱 基础用法: import java.math.BigDecimal;/*** * @title: BigDecimal测试* @aut ...
- java BigDecimal实现精确加减乘除运算
原文:http://blog.csdn.net/shadow_zed/article/details/73522157 import java.math.BigDecimal;/*** 由于Java的 ...
- java: BigDecimal 调用add后,求和结果没有变化
BigDecimal使用add时,原数没有不变. BigDecimal 的 add方法是,调用者不变. 因此,对结果进行接收.改为如下 package com.baobaotao;import jav ...
- java bigdecimal语法_JAVA BigDecimal 小数点处理
语法:// 返回小数点后位数 BigDecimal.setScale(); // setScale len参数指定小数点后位数 BigDecimal.setScale(len); PS: setSca ...
- 去掉 java BigDecimal 类对象后面没用的零
2019独角兽企业重金招聘Python工程师标准>>> 方法一 使用:stripTrailingZeros().toPlainString() import java.util.*; ...
- java bigdecimal赋值_Java中BigDecimal类介绍及用法(亲测)
Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是 ...
- Java BigDecimal初探
更新时间:2016-03-17 一.引言 <Effactive Java>中有这样的描述:float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为 ...
- java BigDecimal八种舍入模式
一.BigDecimal介绍 java.math.BigDecimal 不可变的immutable.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scal ...
最新文章
- 实用的人工智能 但数据 Python 速查表
- 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码
- 【学习心得】当程序员思路被打断
- 蓄电池充放电试验培训课件
- python库怎么绘画_python基础,安装并使用matplotlib库画图
- 阿里云OSS搭建移动应用直传服务的.Net C#示例
- 职业生涯发展技巧20则
- 单页面 Web 应用(Single Page Application,SPA)的工作原理介绍
- 了解OAuth2令牌认证
- 联合查询(查找所有分类及其父类)
- 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
- Shell教程----Shell脚本
- 8.Jenkins 权威指南 --- 自动化部署和持续交付
- java中的回调函数
- emacs linux 教程,Emacs基础入门教程(三)使用 Emacs 必知必会
- Redis 未授权访问 CNNVD-201511-230 漏洞复现
- 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...
- 基于SpringBoot的毕业设计题目
- LR 的上传文件与下载文件
- 史上最详尽的RGB-D传感器选型调研报告