Java使用BigDecimal解决精确计算的问题
发布日期:2021-05-15 10:07:10 浏览次数:18 分类:博客文章

本文共 3057 字,大约阅读时间需要 10 分钟。

���������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

������������������������������������������������������������������������������for������������������������������������������������������������������������������������������������float���������������������0.1���

������������������������������������������������������������������������������������double���������������������������

������������java���float������������������������������������������������������������������������������������������������������

������������java������������BigDecimal������������������

������������BigDecimal������������������int���float������������������

1���������������BigDecimal

������BigDecimal b1=new BigDecimal("10");

������������������������������b1������������10���BigDecimal������������������BigDecimal���������������������������String���������

2���BigDecimal���������

������add:

import java.math.BigDecimal;public class test3 {	public static void main(String[] args) {		BigDecimal b1=new BigDecimal("1.12");		BigDecimal b2=new BigDecimal("2.14");		System.out.println(b1.add(b2));	}}

������������������������3.26

������substract:

import java.math.BigDecimal;public class test4 {	public static void main(String[] args) {		BigDecimal b1=new BigDecimal("1.12");		BigDecimal b2=new BigDecimal("2.14");		System.out.println(b1.subtract(b2));	}}

������������������������-1.02

������PS���������������������������������������������������������

 

3���BigDecimal���for������ 

import java.math.BigDecimal;public class test3 {	public static void main(String[] args) {		for(BigDecimal b1=new BigDecimal("1.0");				b1.compareTo(new BigDecimal("5"))!=1;				b1=b1.add(new BigDecimal("0.1"))){			System.out.println(b1);		}	}}

������������BigDecimal���for������������������BigDecimal������compareTo������������������compareTo���������������true���������1���������������0���

4���������������

import java.math.BigDecimal;public class test2 {	public static void main(String[] args) {		for (BigDecimal a = new BigDecimal("0"); 				a.compareTo(new BigDecimal("10")) != 1; 				a = a.add(new BigDecimal("0.1"))) {			for (BigDecimal b = new BigDecimal("0"); 					b.compareTo(new BigDecimal("10")) != 1; 					b = b.add(new BigDecimal("0.1"))) {				for (BigDecimal c = new BigDecimal("0"); 						c.compareTo(new BigDecimal("10")) != 1;						c = c.add(new BigDecimal("0.1"))) {					for (BigDecimal d = new BigDecimal("0"); 							d.compareTo(new BigDecimal("10")) != 1; 							d = d.add(new BigDecimal("0.1"))) {						if ((a.add(b)).equals(new BigDecimal("9.0"))								&& b.add(d).equals(new BigDecimal("10.0"))								&& a.add(c).equals(new BigDecimal("10.0"))								&& c.subtract(d).equals(new BigDecimal("6.0")) ) 							System.out.println(a + "| " + b + " |  " + c + " | " + d);					}				}			}		}			}}

���������������������BigDecimal���for���������

���������������������1.5| 7.5 |  8.5 | 2.5

 

上一篇:回顾:计算机网络之传输协议
下一篇:Leetcode(93): Restore IP Addresses

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月11日 02时38分29秒