/* package whatever; // don't place package name! */
import java.math.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
int bdErrors = 0, doubleErrors = 0;
// test BigDecimal rounds as expected.
BigDecimal bd2
= bd.
setScale(2, RoundingMode.
HALF_UP); bdErrors++;
// now try this with double.
double d = bd.doubleValue();
double d2
= Math.
round(d
* 100) / 100.0;
// has any information been lots, use BigDecimal to do calculations to be sure of no accidental errors.
doubleErrors++;
}
System.
out.
printf("BigDecimal errors %,d & double errors %,d%n", bdErrors, doubleErrors
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEubWF0aC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewogICAgICAgIGludCBiZEVycm9ycyA9IDAsIGRvdWJsZUVycm9ycyA9IDA7CiAgICAgICAgZm9yKEJpZ0RlY2ltYWwgYmQgPSBCaWdEZWNpbWFsLlpFUk87IGJkLmNvbXBhcmVUbyhCaWdEZWNpbWFsLk9ORSkgPD0wIDsgYmQgPSBiZC5hZGQobmV3IEJpZ0RlY2ltYWwoIjAuMDAwMSIpKSkgewogICAgICAgICAgICAvLyB0ZXN0IEJpZ0RlY2ltYWwgcm91bmRzIGFzIGV4cGVjdGVkLgogICAgICAgICAgICBCaWdEZWNpbWFsIGJkMiA9IGJkLnNldFNjYWxlKDIsIFJvdW5kaW5nTW9kZS5IQUxGX1VQKTsKICAgICAgICAgICAgQmlnRGVjaW1hbCBlcnJvciA9IGJkMi5yZW1haW5kZXIobmV3IEJpZ0RlY2ltYWwoIjAuMDEiKSk7CiAgICAgICAgICAgIGlmIChlcnJvci5jb21wYXJlVG8oQmlnRGVjaW1hbC5aRVJPKSAhPSAwKQogICAgICAgICAgICAgICAgYmRFcnJvcnMrKzsKICAgICAgICAgICAgLy8gbm93IHRyeSB0aGlzIHdpdGggZG91YmxlLgogICAgICAgICAgICBkb3VibGUgZCA9IGJkLmRvdWJsZVZhbHVlKCk7CiAgICAgICAgICAgIGRvdWJsZSBkMiA9IE1hdGgucm91bmQoZCAqIDEwMCkgLyAxMDAuMDsKCiAgICAgICAgICAgIC8vIGhhcyBhbnkgaW5mb3JtYXRpb24gYmVlbiBsb3RzLCB1c2UgQmlnRGVjaW1hbCB0byBkbyBjYWxjdWxhdGlvbnMgdG8gYmUgc3VyZSBvZiBubyBhY2NpZGVudGFsIGVycm9ycy4KICAgICAgICAgICAgQmlnRGVjaW1hbCBiZDMgPSBCaWdEZWNpbWFsLnZhbHVlT2YoZDIpOwogICAgICAgICAgICBCaWdEZWNpbWFsIGVycm9yMyA9IGJkMy5yZW1haW5kZXIobmV3IEJpZ0RlY2ltYWwoIjAuMDEiKSk7CiAgICAgICAgICAgIGlmIChlcnJvcjMuY29tcGFyZVRvKEJpZ0RlY2ltYWwuWkVSTykgIT0gMCkKICAgICAgICAgICAgICAgIGRvdWJsZUVycm9ycysrOwoKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIkJpZ0RlY2ltYWwgZXJyb3JzICUsZCAmIGRvdWJsZSBlcnJvcnMgJSxkJW4iLCBiZEVycm9ycywgZG91YmxlRXJyb3JzKTsKCX0KfQ==