(stripTrailingZeros)A == B hdu2054 A == B ?
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054
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
注意:
1)在用JAVA的BigDecimal时,用直接用equal()会WA的,因为equal()表示此 BigDecimal 与指定的 Object 的相等性。(2.0 与2.000是不相等的),所以应该用stripTrailingZeros()来去掉后面的0。
2)注意“number”可能包括小数。
3)此方法也可以用compareTo()
JAVA代码1:
import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner inScanner = new Scanner(System.in); BigDecimal bigDecimal; BigDecimal bigDecimal2; while(inScanner.hasNext()) { bigDecimal = inScanner.nextBigDecimal(); bigDecimal2 = inScanner.nextBigDecimal(); if(bigDecimal.stripTrailingZeros().equals(bigDecimal2.stripTrailingZeros())) { System.out.println("YES"); } //stripTrailingZeros() 要使用。 else { System.out.println("NO"); } } }
JAVA代码2:
import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner inScanner = new Scanner(System.in); BigDecimal bigDecimal; BigDecimal bigDecimal2; while(inScanner.hasNext()) { bigDecimal = inScanner.nextBigDecimal(); bigDecimal2 = inScanner.nextBigDecimal(); if(bigDecimal.compareTo(bigDecimal2)==0) { System.out.println("YES"); } else { System.out.println("NO"); } } } }