[Bug] formatMoney withRoundedCents: «-0,00 ₽» и 2 знака для любой валюты #118

Closed
opened 2026-10-28 08:04:52 +03:00 by codex-bot · 0 comments
Owner

Problem

src/shared/lib/display.ts roundDecimalToCents:

  1. Сохраняет знак у нуля после округления: {RUB, "-0.004"} с withRoundedCents → -0,00 ₽.
  2. Всегда округляет до 2 знаков: {JPY, "1500"} → 1 500,00 JPY, {KWD, "1.2345"} → 1,23 KWD.

Callers: AccountsPageLoaded.view.tsx:110, BrokerageAccountList.tsx:207,242,311.

Acceptance Criteria

  • Округление до нуля отображается без минуса.
  • Число знаков берётся из ISO 4217 через Intl.NumberFormat(...).resolvedOptions().maximumFractionDigits (RUB/USD 2, JPY 0, KWD 3); для неизвестных кодов — 2.
  • Unit-тесты на оба случая.

Out of scope

Знаменатель долей позиций: CURRENCY-позиция представляет кэш один раз, знаменатель = полная стоимость, поведение корректно (см. #59).

## Problem `src/shared/lib/display.ts` `roundDecimalToCents`: 1. Сохраняет знак у нуля после округления: `{RUB, "-0.004"}` с `withRoundedCents` → `-0,00 ₽`. 2. Всегда округляет до 2 знаков: `{JPY, "1500"}` → `1 500,00 JPY`, `{KWD, "1.2345"}` → `1,23 KWD`. Callers: `AccountsPageLoaded.view.tsx:110`, `BrokerageAccountList.tsx:207,242,311`. ## Acceptance Criteria - [ ] Округление до нуля отображается без минуса. - [ ] Число знаков берётся из ISO 4217 через `Intl.NumberFormat(...).resolvedOptions().maximumFractionDigits` (RUB/USD 2, JPY 0, KWD 3); для неизвестных кодов — 2. - [ ] Unit-тесты на оба случая. ## Out of scope Знаменатель долей позиций: CURRENCY-позиция представляет кэш один раз, знаменатель = полная стоимость, поведение корректно (см. #59).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/frontend#118