एक महत्वपूर्ण बिंदु जिसे सीधे संबोधित किया जाता है, लेकिन "सटीक" और "स्केल" के बीच का अंतर है और दो बयानों में उनका उपयोग कैसे किया जाता है। "परिशुद्धता" एक संख्या में महत्वपूर्ण अंकों की कुल संख्या है। "स्केल" दशमलव बिंदु के दाईं ओर अंकों की संख्या है।
MathContext कंस्ट्रक्टर केवल सटीक और RoundingMode को तर्क के रूप में स्वीकार करता है, और इसलिए पहले कथन में स्केल कभी निर्दिष्ट नहीं होता है।
setScale()
स्पष्ट रूप से पैमाने को एक तर्क के रूप में, साथ ही साथ राउंडिंगमॉड स्वीकार करता है, हालांकि दूसरे कथन में सटीकता कभी भी निर्दिष्ट नहीं की जाती है।
यदि आप दशमलव बिंदु को दाईं ओर ले जाते हैं, तो अंतर स्पष्ट हो जाएगा:
// 1.
new BigDecimal("35.3456").round(new MathContext(4, RoundingMode.HALF_UP));
//result = 35.35
// 2.
new BigDecimal("35.3456").setScale(4, RoundingMode.HALF_UP);
// result = 35.3456