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.
14 lines
656 B
14 lines
656 B
// Computes the decimal coefficient and exponent of the specified number x with |
|
// significant digits p, where x is positive and p is in [1, 21] or undefined. |
|
// For example, formatDecimal(1.23) returns ["123", 0]. |
|
export default function(x, p) { |
|
if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity |
|
var i, coefficient = x.slice(0, i); |
|
|
|
// The string returned by toExponential either has the form \d\.\d+e[-+]\d+ |
|
// (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3). |
|
return [ |
|
coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, |
|
+x.slice(i + 1) |
|
]; |
|
}
|
|
|