Мне нужно добавить нули, так что каждое число имеет как минимум два десятичных знака, но без округления. Так, например:
5 --> 5.00
5.1 --> 5.10
5.11 --> 5.11 (no change)
5.111 --> 5.111 (no change)
5.1111 --> 5.1111 (no change)
В моей функции отсутствует IF для проверки менее двух знаков после запятой:
function addZeroes( num ) {
var num = Number(num);
if ( //idk ) {
num = num.toFixed(2);
}
return num;
}
Спасибо!
Проводка альтернативного ответа, в дополнение к двум ниже. (Имейте в виду, что я не эксперт, и это просто для ввода текста, а не для синтаксического анализа сложных значений, таких как цвета, которые могут иметь проблемы с плавающей запятой и т.д.)
function addZeroes( value ) {
//set everything to at least two decimals; removs 3+ zero decimasl, keep non-zero decimals
var new_value = value*1; //removes trailing zeros
new_value = new_value+''; //casts it to string
pos = new_value.indexOf('.');
if (pos==-1) new_value = new_value + '.00';
else {
var integer = new_value.substring(0,pos);
var decimals = new_value.substring(pos+1);
while(decimals.length<2) decimals=decimals+'0';
new_value = integer+'.'+decimals;
}
return new_value;
}
[Это не дублирующий вопрос. Вопрос, который вы связываете, предполагает "знание, что у них есть как минимум 1 десятичный знак". Десятичные точки не могут приниматься в текстовых вводах, и это делало ошибки.]