首页 技术 正文
技术 2022年11月7日
0 收藏 424 点赞 986 浏览 1076 个字

前言

float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。

1. BigDecimal的四则运算

package com.homework;
import java.math.*;
public class BigDecimalExer {
public static void main(String[] args) {
//定义两个BigDecimal对象
BigDecimal bg1,bg2;
bg1=new BigDecimal("0.06");
bg2=new BigDecimal("0.01"); BigDecimal num=null; //加法
num=bg1.add(bg2);
System.out.println("和是"+num);
//减法
num=bg1.subtract(bg2);
System.out.println("差是"+num);
//乘法
num=bg1.multiply(bg2);
System.out.println("积是"+num);
//除法
num=bg1.divide(bg2);
System.out.println("商是"+num);
}

结果:

Java BigDecimal进行精确计算

2.BigDecimal的比较大小

/*比较大小*/        BigDecimal num1,num2,num3;
num1=new BigDecimal("1");
num2=new BigDecimal("2");
num3=new BigDecimal("3"); //用作比较的数
BigDecimal number=new BigDecimal("2"); System.out.println(num1.compareTo(number));//小于时,返回 -1
System.out.println(num2.compareTo(number));//等于时,返回 0
System.out.println(num3.compareTo(number));//大于时,返回 1

结果:

Java BigDecimal进行精确计算

3.利用BigDecimal写for循环

for(BigDecimal i=new BigDecimal("0");i.compareTo(new BigDecimal("10"))!=1;i=i.add(new BigDecimal("1")))
{
System.out.println(i+"\t");
}

结果:输出1~10.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,093
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,569
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,417
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,190
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,825
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,908