1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-13 13:04:03 +00:00

Change formatBigNumber

Modifies function formatBigNumber so that it displays values up to a certain number of significant figures. Also added third "precision" argument, defaults to 3 significant figures
This commit is contained in:
EmeraldBlock 2020-09-27 21:16:16 -05:00 committed by GitHub
parent 8d0be453f2
commit e9dfaf1f18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -266,9 +266,10 @@ export function findNiceIntegerValue(num) {
* Formats a big number * Formats a big number
* @param {number} num * @param {number} num
* @param {string=} separator The decimal separator for numbers like 50.1 (separator='.') * @param {string=} separator The decimal separator for numbers like 50.1 (separator='.')
* @param {number=} number of significant figures to include (for values >= 1000)
* @returns {string} * @returns {string}
*/ */
export function formatBigNumber(num, separator = T.global.decimalSeparator) { export function formatBigNumber(num, separator = T.global.decimalSeparator, precision = 3) {
const sign = num < 0 ? "-" : ""; const sign = num < 0 ? "-" : "";
num = Math.abs(num); num = Math.abs(num);
@ -286,24 +287,22 @@ export function formatBigNumber(num, separator = T.global.decimalSeparator) {
if (num < 1000) { if (num < 1000) {
return sign + "" + num; return sign + "" + num;
} else { }
let leadingDigits = num; let leadingDigits = num;
let suffix = ""; let suffixIndex = 0;
for (let suffixIndex = 0; suffixIndex < bigNumberSuffixTranslationKeys.length; ++suffixIndex) { for (; suffixIndex < bigNumberSuffixTranslationKeys.length; ++suffixIndex) {
leadingDigits = leadingDigits / 1000; leadingDigits = leadingDigits / 1000;
suffix = T.global.suffix[bigNumberSuffixTranslationKeys[suffixIndex]];
if (leadingDigits < 1000) { if (leadingDigits < 1000) {
break; break;
} }
} }
const leadingDigitsRounded = round1Digit(leadingDigits); const suffix = T.global.suffix[bigNumberSuffixTranslationKeys[suffixIndex]];
const leadingDigitsRounded = Number(leadingDigits.toPrecision(precision));
const leadingDigitsNoTrailingDecimal = leadingDigitsRounded const leadingDigitsNoTrailingDecimal = leadingDigitsRounded
.toString() .toString()
.replace(".0", "")
.replace(".", separator); .replace(".", separator);
return sign + leadingDigitsNoTrailingDecimal + suffix; return sign + leadingDigitsNoTrailingDecimal + suffix;
} }
}
/** /**
* Formats a big number, but does not add any suffix and instead uses its full representation * Formats a big number, but does not add any suffix and instead uses its full representation