improve decimal formatting for conversion results
This commit is contained in:
@@ -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
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user