formatPrefixAuto.js 631 B

12345678910111213141516
  1. import {formatDecimalParts} from "./formatDecimal.js";
  2. export var prefixExponent;
  3. export default function(x, p) {
  4. var d = formatDecimalParts(x, p);
  5. if (!d) return x + "";
  6. var coefficient = d[0],
  7. exponent = d[1],
  8. i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
  9. n = coefficient.length;
  10. return i === n ? coefficient
  11. : i > n ? coefficient + new Array(i - n + 1).join("0")
  12. : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
  13. : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
  14. }