Мне нужно было удалить любые конечные нули, но оставить как минимум 2 десятичных знака, , включая любые нули.
Числа, с которыми я работаю, представляют собой 6 строк десятичных чисел, сгенерированных .toFixed (6).
Ожидаемый результат:
var numstra = 12345.000010 // should return 12345.00001
var numstrb = 12345.100000 // should return 12345.10
var numstrc = 12345.000000 // should return 12345.00
var numstrd = 12345.123000 // should return 12345.123
Решение:
var numstr = 12345.100000
while (numstr[numstr.length-1] === "0") {
numstr = numstr.slice(0, -1)
if (numstr[numstr.length-1] !== "0") {break;}
if (numstr[numstr.length-3] === ".") {break;}
}
console.log(numstr) // 12345.10
Логика:
Запуск функции цикла, если последний символ строки равен нулю.
Удалите последний символ и обновите строковую переменную.
Если последний символ обновленной строки не равен нулю, завершите цикл.
Если обновленная строка с третьего по последний символ является плавающей точкой, завершите цикл.