Посібник з точності та допусків у Beancount
Управління числовою точністю є наріжним каменем бухгалтерії з подвійним записом. У цифровому обліку, особливо при роботі з кількома валютами, цінами акцій і дробовими акціями, невеликі розбіжності заокруглення можуть швидко призвести до неприємних помилок балансування. Beancount надає складну, але інтуїтивно зрозумілу систему для обробки точності та встановлення прийнятних допусків. Цей посібник проведе вас через те, як це працює. ⚙️
Основні концепції точності
Основна мета Beancount – забезпечити, щоб кожна транзакція балансувалася до нуля. Однак розрахунки, що включають ціни або вартість, часто дають результати з більшою кількістю знаків після коми, ніж практично записувати. Система допусків допускає невеликі, прийнятні дисбаланси.
Автоматичне визначення допусків
За замовчуванням Beancount автоматично визначає необхідний допуск для кожної транзакції. Це визначення обробляється індивідуально для кожної транзакції та обчислюється окремо для кожної задіяної валюти.
Правило просте: допуск – це половина останньої значущої цифри чисел, наявних у проведеннях транзакції.
Наприклад, розглянемо цю покупку:
2013-04-03 * "Купівля фонду"
Assets:Fund 10.22626 FUND {37.61 USD}
Assets:Cash -384.61 USD
Beancount визначає допуски наступним чином:
- Для товару
FUNDчисло10.22626має 5 знаків після коми. Допуск становить половину останньої цифри, тобто $0.00001 \div 2 = 0.000005$FUND. - Для товару
USDчисло-384.61має 2 знаки після коми. Допуск становить половину останньої цифри, тобто $0.01 \div 2 = 0.005$USD.