improve decimal formatting for conversion results

This commit is contained in:
zvspany
2026-03-08 12:36:14 +01:00
parent a76cd67581
commit a7d943d226

View File

@@ -1,9 +1,5 @@
import { RateAsset } from "@/lib/rates"; import { RateAsset } from "@/lib/rates";
function trimTrailingZeroes(value: string): string {
return value.replace(/\.?0+$/, "");
}
export function formatAmount(value: number, asset: RateAsset): string { export function formatAmount(value: number, asset: RateAsset): string {
if (!Number.isFinite(value)) { if (!Number.isFinite(value)) {
return "-"; return "-";
@@ -18,18 +14,17 @@ export function formatAmount(value: number, asset: RateAsset): string {
return "<0.00000001"; return "<0.00000001";
} }
const precision = asset.decimals ?? 8;
const formatted = value.toLocaleString("en-US", { const formatted = value.toLocaleString("en-US", {
minimumFractionDigits: value < 1 ? 4 : 2, minimumFractionDigits: 8,
maximumFractionDigits: precision maximumFractionDigits: 8
}); });
return trimTrailingZeroes(formatted); return formatted;
} }
return value.toLocaleString("en-US", { return value.toLocaleString("en-US", {
minimumFractionDigits: 2, minimumFractionDigits: 2,
maximumFractionDigits: value < 1 ? 6 : 4 maximumFractionDigits: 2
}); });
} }