33 lines
868 B
JavaScript
33 lines
868 B
JavaScript
export function formatNumber(value) {
|
||
const parsed = Number(value);
|
||
if (!Number.isFinite(parsed)) {
|
||
return "-";
|
||
}
|
||
return new Intl.NumberFormat("zh-CN").format(parsed);
|
||
}
|
||
|
||
export function formatPercent(value) {
|
||
const parsed = Number(value);
|
||
if (!Number.isFinite(parsed)) {
|
||
return "-";
|
||
}
|
||
return `${parsed.toFixed(2)}%`;
|
||
}
|
||
|
||
// 服务端 RTP 一律以 ppm(百万分比)存储避免浮点误差,展示层统一在这里换算成百分比。
|
||
export function formatPercentFromPPM(value) {
|
||
const parsed = Number(value);
|
||
if (!Number.isFinite(parsed) || parsed <= 0) {
|
||
return "-";
|
||
}
|
||
return `${(parsed / 10_000).toFixed(2)}%`;
|
||
}
|
||
|
||
export function formatMultiplierFromPPM(value) {
|
||
const parsed = Number(value);
|
||
if (!Number.isFinite(parsed)) {
|
||
return "-";
|
||
}
|
||
return `${(parsed / 1_000_000).toFixed(2).replace(/\.?0+$/, "")}x`;
|
||
}
|