બ્લૉગ
Boring Expenses પૈસા કેવી રીતે સંગ્રહે છે (અને તે પૂર્ણાંક કેમ છે)
એક પૈસો ગુમાવવાની આ એક ક્લાસિક રીત છે. લગભગ કોઈ પણ પ્રોગ્રામિંગ ભાષાને પૂછો કે 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))
તમારા માટે આ કેમ મહત્ત્વનું છે
- કુલ ચોક્કસ છે. તમારો માસિક સરવાળો એ સાચો સરવાળો છે, યાદી વધે તેમ એક પૈસો ખસી જતો આંકડો નહીં.
- સિંક સુસંગત રહે છે. એક પૂર્ણાંકનો અર્થ તમારા iPhone, Watch અને iPad પર એક જ હોય છે. મેળવવા જેવી કોઈ અસ્પષ્ટતા નથી.
- નિકાસ પર ભરોસો કરી શકાય. તમે નિકાસ કરેલી CSV ઍપ સાથે પાઈએ પાઈ મેળ ખાય છે.
આ એક નાનો, સાદો નિર્ણય છે — બરાબર અમને ગમે તેવો. તમે તેને ક્યારેય નહીં જુઓ, અને એ જ મુદ્દો છે: આંકડા બસ બરાબર મળી જાય છે.