В бытовых приборах учета количество значащих цифр или разрядов определяется регистром. В микроеэлектронике регистром называют цифровой узел, предназначенный для записи и хранения числа.
Нужно разделять понятия показания и потребления или расхода. Показание — значение прибора на текущий момент. Потребление — разница между текущим и прошлым показанием. В информационной системе нужно хранить оба значения.
Переход через 0 — это когда все разряды регистра достигают максимального значения.
- Предыдущее показание: 994
- Текущее показание: 1
- Количество знаков слева (разрядов): 3
- Расход = 1 + (10^3) — 994 = 7
В коде это будет выглядеть так
if (current<prev)
current = current + 10^NumberOfDigitsLeft()
consumption = current - prev
Самое прекрасное переходов через 0 может быть неограниченное количество раз. Никакой дополнительной обработки не требуется.