الوحدة الناقصة
تجمع أنت الأسطر، ويجمعها قسم حسابات العميل، فيختلف المجموعان بوحدة واحدة. لم يخطئ أحد في الحساب. السبب اثنان — التقريب في لحظة مختلفة، وطريقة تخزين الحواسيب للكسور العشرية — وكلاهما يمكن تفاديه.
المال ليس عددًا عشريًا بل عددًا صحيحًا من الوحدات الصغرى
تخزّن الحواسيب 0,1 و0,2 ككسور ثنائية قريبة جدًا وغير دقيقة، فلا يساوي 0,1 زائد 0,2 ثلاثة أعشار في معظم اللغات. في سطر واحد لا يلاحظ أحد. وعبر أربعين سطرًا وحساب ضريبة يتراكم الخطأ ليصبح وحدة مرئية. لا يحتفظ التطبيق بأي مبلغ كعدد عشري: يتحوّل كل سعر لحظة إدخاله إلى عدد صحيح من **الوحدات الصغرى**، ويجري كل الحساب على أعداد صحيحة، ولا يُعاد التحويل إلا للعرض.
قرّب مرة واحدة، في موضع واحد
السبب الثاني أدقّ. خذ ثلاثة أسطر، كل سطر 3 قطع بسعر 0,335. إن قرّبت كل سطر أولًا حصلت على 1,01 ثلاث مرات، أي 3,03. وإن جمعت أولًا ثم قرّبت مرة واحدة حصلت على 3,02. لا خطأ حسابيًا في أيٍّ منهما؛ هما إجابتان عن سؤالين. الخطأ أن تفعل الاثنين في المستند نفسه — أن تعرض أسطرًا مقرَّبة وتجمع القيم غير المقرَّبة — فينتج عن ذلك فاتورة لا تُعطي أسطرها الظاهرة إجماليها الظاهر. يقرّب التطبيق مرة واحدة لكل سطر ثم يجمع الأسطر المقرَّبة.
أين يخفي الخصم وحدة
الخصم بنسبة مئوية على الإجمالي لا ينقسم بالتساوي على الأسطر. عشرة بالمئة من ثلاثة أسطر بقيمة 3,33 تساوي 0,999 — ثلث وحدة لكل سطر، ولا يمكن طباعته. إن قرّبت حصة كل سطر لأسفل نقصت وحدة من الإجمالي، وإن قرّبتها لأعلى زادت واحدة. يحسب التطبيق الخصم على المجموع الفرعي، ثم يوزّعه على الأسطر ويضع الباقي على أحدها، فيصبح مجموع الأسطر بعد الخصم مساويًا تمامًا للمجموع الفرعي بعد الخصم.
العملات بلا وحدة صغرى
ليست كل عملة بخانتين عشريتين. الين الياباني بلا خانات: المبلغ عدد صحيح من الينات ولا وحدة أصغر يُقرَّب إليها. النظام الذي يثبّت خانتين ينتج أسعارًا مثل ¥1٬250,00 — وهذه ليست طريقة كتابة الين — والأسوأ أنه يقرّب إلى جزء من مئة من وحدة غير موجودة. يحتفظ التطبيق بعدد الخانات **لكل عملة**.
أسئلة شائعة
لماذا تختلف فاتورتي عن جدولي بوحدة واحدة؟
غالبًا لأن أحدكما يقرّب كل سطر والآخر يقرّب الإجمالي فقط. كلاهما مقبول؛ أما خلطهما في مستند واحد فلا.
أقرّب لكل سطر أم على الإجمالي؟
لكل سطر، ثم اجمع الأسطر المقرَّبة — عندها تُعطي الأسطر المطبوعة الإجمالي المطبوع بوضوح.
هل 0,1 + 0,2 ليست 0,3 فعلًا؟
في الفاصلة العائمة الثنائية لا، بل 0,30000000000000004. ولهذا يُتعامل مع المال بالوحدات الصغرى الصحيحة.
لماذا يترك الخصم النسبي باقيًا؟
لأن نسبة من إجمالي نادرًا ما تنقسم إلى وحدات صحيحة على الأسطر. لا بدّ أن يقع الباقي على سطر.
كيف يتعامل التطبيق مع الين؟
كعملة بلا خانات عشرية: ينات صحيحة، بلا وحدة صغرى وبلا تقريب.
ألا يمكنني تصحيح الإجمالي يدويًا؟
لا. الإجمالي الذي لا يساوي مجموع الأسطر هو أول ما يلاحظه المراجع. صحّح قاعدة التقريب.
فواتير تتطابق مجاميعها فعلًا. ينشئ Invoice Maker الفواتير والفواتير المبدئية وعروض الأسعار والإيصالات داخل المتصفح، ويحسب المبالغ بوحدات صحيحة كي لا ينزلق سطر الضريبة، ثم يُصدّر ملف PDF. لا يُرفع شيء.
أنشئ فاتورة داخل المتصفح