Avatar ·

Kotlin में Double को 1 दशमलव स्थान तक गोल करना: 0.044999 से 0.1 कैसे प्राप्त करें?

सभी को नमस्ते! मैंने अभी-अभी Android के लिए Kotlin सीखना शुरू किया है, और मुझे फ्लोटिंग-पॉइंट संख्याओं को गोल करने की एक अजीब समस्या का सामना करना पड़ा है। मेरे पास एक Double प्रकार का वेरिएबल है: `val number = 0.044999`। मुझे इसे एक दशमलव स्थान तक गोल करना है ताकि 0.1 प्राप्त हो सके (अर्थात गणितीय रूप से सही ऊपर की ओर गोल करना, क्योंकि 0.0 के बाद अगला अंक 4 है, लेकिन यदि पूरी संख्या देखें, तो 0.045 पहले से ही एक दशमलव स्थान तक गोल करने पर 0.1 देता है)। मैंने `String.format("%.1f", number)` का उपयोग करने की कोशिश की, लेकिन यह `0.0` देता है, क्योंकि format केवल दशमलव के बाद पहले अंक को देखता है? फिर मैंने `Math.round(number * 10.0) / 10.0` आज़माया, लेकिन परिणाम फिर से `0.0` आया। मैं असमंजस में हूँ! यहाँ मेरा कोड है: ```kotlin fun main() { val number = 0.044999 val rounded = Math.round(number * 10.0) / 10.0 println(rounded) // 0.0 प्रिंट करता है } ``` मैं समझता हूँ कि Double सटीक नहीं है, लेकिन निश्चित रूप से Kotlin में मानक गोल करने का कोई तरीका होना चाहिए जो गणित के नियमों का पालन करता हो? क्या किसी को पता है कि मैं 0.044999 को 0.1 में कैसे बदल सकता हूँ? मैं BigDecimal का उपयोग करने से बचना चाहूँगा क्योंकि यह ओवरकिल लगता है, लेकिन यदि यह एकमात्र तरीका है तो मैं इसके लिए तैयार हूँ।

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग