You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
718 B
24 lines
718 B
function stringifyNumber({ format, minFractionDigits, tag, value }) { |
|
if (typeof value === 'bigint') |
|
return String(value); |
|
const num = typeof value === 'number' ? value : Number(value); |
|
if (!isFinite(num)) |
|
return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf'; |
|
let n = JSON.stringify(value); |
|
if (!format && |
|
minFractionDigits && |
|
(!tag || tag === 'tag:yaml.org,2002:float') && |
|
/^\d/.test(n)) { |
|
let i = n.indexOf('.'); |
|
if (i < 0) { |
|
i = n.length; |
|
n += '.'; |
|
} |
|
let d = minFractionDigits - (n.length - i - 1); |
|
while (d-- > 0) |
|
n += '0'; |
|
} |
|
return n; |
|
} |
|
|
|
export { stringifyNumber };
|
|
|