ब्लॉग

Boring Expenses पैसा कैसे सहेजता है (और पूर्णांक में क्यों)

  • इंजीनियरिंग
  • iOS
  • Swift

एक पैसा खोने का एक पुराना तरीक़ा है। लगभग किसी भी प्रोग्रामिंग भाषा से पूछिए कि 0.1 + 0.2 कितना होता है, और वह कहेगी 0.30000000000000004। यह भाषा की गड़बड़ी नहीं — बाइनरी फ़्लोटिंग-पॉइंट संख्याएँ ऐसे ही काम करती हैं। वे ज़्यादातर दशमलव भिन्नों को बिल्कुल सही नहीं दिखा पातीं, इसलिए छोटी-छोटी गलतियाँ घुस आती हैं। भौतिकी के लिए ठीक है; पैसे के लिए नहीं।

फ़ाइनेंस ऐप के लिए “लगभग सही” गलत जवाब है। इसलिए Boring Expenses किसी रकम को कभी दशमलव संख्या के रूप में नहीं सहेजता।

सबसे छोटी इकाई को पूर्णांक के रूप में सहेजना

पैसे वाला सॉफ़्टवेयर हमेशा से यह तरकीब अपनाता आया है: सबसे छोटी इकाई में हिसाब करो और उसे पूर्णांक रखो। ₹4.20 की जगह आप 420 सहेजते हैं — पैसों की गिनती। पूर्णांक बिल्कुल सटीक होते हैं। दिन भर जोड़िए, घटाइए, टोटल निकालिए, राउंडिंग की धूल कभी नहीं जमेगी।

Boring Expenses एक क़दम आगे जाकर रकम को बहुत बारीक उप-इकाइयों में सहेजता है (सोचिए “हर इकाई में 10 करोड़”), जिससे अलग-अलग मुद्राओं और भविष्य की ज़रूरतों के लिए खूब गुंजाइश रहती है और फिर भी सब कुछ एक सादा Int रहता है। स्क्रीन पर दिखने वाले रूप में बदलाव सिर्फ़ किनारों पर होता है — जब आप रकम लिखते हैं, और जब हम उसे दिखाने के लिए फ़ॉर्मैट करते हैं।

// केवल उदाहरण, असली कोड नहीं:
let display = Decimal(amountInSubunits) / Decimal(subunitsPerUnit)
let text = display.formatted(.currency(code: userCurrency))

यह आपके लिए क्यों मायने रखता है

यह एक छोटा, चुपचाप लिया गया फ़ैसला है — ठीक वैसा जैसा हमें पसंद है। आप इसे कभी नहीं देखेंगे, और यही बात है: हिसाब बस सही बैठता है।