java math中的BigDecimal()
BigDecimal类
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数。
构造器
public BigDecimal(double val)
public BigDecimal(String val)
常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
同样还有
BigInteger类
Integer类作为int的包装类,能存储的最大整型值为2^31−1,BigInteger类的数字范围较Integer类的数字范围要大得多,可以支持任意精度的整数
BigInteger(String val)
- 常用方法
* public BigInteger abs()
* public BigInteger add(BigInteger val)
* public BigInteger subtract(BigInteger val)
* public BigInteger multiply(BigInteger val)
* public BigInteger divide(BigInteger val)
* public BigInteger remainder(BigInteger val)
* public BigInteger pow(int exponent)
* public BigInteger[] divideAndRemainder(BigInteger val)
例题(选自杭电acm2054)
A == B ?
Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
代码:package acm题目;
import java.math.BigDecimal;
import java.util.Scanner;
public class acm2054 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()) {
BigDecimal A=sc.nextBigDecimal();
BigDecimal B=sc.nextBigDecimal();
if(A.compareTo(B)==0)
System.out.println("YES");
else System.out.println("NO");
}
}
}