2012-02-24 10 views
6

यह बनाने में आसान काफी है:स्कैला के बिगडेसीमल में शून्य क्यों नहीं है?

object zero extends BigDecimal(java.math.BigDecimal.ZERO) 

मैं बस सोच रहा हूँ कि क्या यह एक निरीक्षण था, या अगर कोई एक सचेत यह नहीं जोड़ सकते हैं और, करने के लिए यदि हां, तो वहाँ कारणों क्यों मैं से बचना चाहिए रहे हैं निर्णय था उपरोक्त कोड शायद MathContext के साथ क्या करना है?

उत्तर

4

मैं क्योंकि आम तौर पर आप इसकी आवश्यकता नहीं है यह लगता है कि। जबकि जावा में आप की तरह

BigDecimal b = new BigDecimal(1.23).add(BigDecimal.ZERO); 
स्काला में

कुछ टाइप करने की आवश्यकता है, वहाँ संख्या रूपांतरण इसका मतलब आप

val b = BigDecimal(1.23) + 0 

तुम भी यह बस BigDecimal(0) के रूप में लिख सकते हैं लिख सकते हैं कर रहे हैं। यदि आप इसे तत्काल कर रहे हैं तो आप इसे नामित मान (किसी भी अन्य नंबर के लिए) के रूप में कैश करना चाहते हैं, लेकिन आपको आमतौर पर इसकी आवश्यकता नहीं होगी, और मुझे लगता है कि यदि आप विशेष मामलों को हटाते हैं तो यह एपीआई को सरल बनाने में मदद करता है याद रखना है।

14

तो मुझे लगता है कि करने के लिए किया था, क्योंकि यह है कि मूल्य प्राप्त करने की उम्मीद जिस तरह से इस तरह होगा:

val zero: BigDecimal = 0 
+0

अच्छा बिंदु। आपके उत्तर के लिए धन्यवाद लेकिन मैं लुइगी के जवाब को स्वीकार कर रहा हूं क्योंकि मुझे लगता है कि यह भविष्य के आगंतुकों के लिए अधिक विस्तृत और अधिक उपयोगी है। – pr1001

संबंधित मुद्दे