Округление toFixed
Добрый день!
Для округления использую toFixed. Как можно сделать так, чтобы если при округлении получилось целое число, то выводить его без десятичных знаков? Т.е. например для числа 10.1 toFixed(1) выводит 10.0, а нужно чтобы выводило 10 Делал так var resultat_2 = resultat_2.toFixed(1); // округлим var num_last_sim = resultat_2.length-1; // получим номер последнего символа var val_last_sim = resultat_2.charAt(num_last_sim); // получим последний символ if(val_last_sim==0){ //var resultat_2 = resultat_2.toFixed(0); // округлим (значение без 0) //$('#ch_discount').val(resultat_2.slice(-1)); var str = resultat_2.substring(0, str.length - 1); alert(str); } else{ $('#ch_discount').val(resultat_2); } Ни с помощью slice, ни с substring реализовать не получилось. Если число целое, то просто ничего не выводится, если десятичное - то срабатывает код в else |
alert( (10).toFixed(1).replace(/\.0+$/, "") ); |
alert(23.04.toFixed(1)); alert(+23.04.toFixed(1)); alert(+23.05.toFixed(1)); |
:-?
alert(23.04|0); |
рони, если я правильно понял тс, то
alert(23.04.toFixed(1)|0);//23 alert(23.05.toFixed(1)|0);//23, а хотим 23.1 |
bes,
Цитата:
вариант ))) alert(10.0.toFixed(1)*10/10); alert(10.1.toFixed(1)*10/10); |
Цитата:
|
Здравствуй, рони
можешь подсказать? или может кто сможет? var vl = '2.02222225';// string //var result1 = vl.toFixed(2);// Так нельзя как я понял нужен number ну переобразовать в число //alert( typeof(result1) );// error: vl.toFixed is not a function var result2 = parseFloat(vl).toFixed(2);// string var result3 = parseFloat( parseFloat(vl).toFixed(2) );// number alert( typeof(result2)+' = '+result2 ); alert( typeof(result3)+' = '+result3 ); На выходе нужен number для других расчетов, пока нашёл такое решение(см. result3) Но кажется что есть деликатнее вариант? |
Boomerml, читай тему, в учебнике тоже есть
|
Boomerml,
:-? var vl = '2.02222225'; alert([typeof +(+vl).toFixed(2),+(+vl).toFixed(2)]); alert([typeof ((vl*100|0)/100),(vl*100|0)/100]); |
Часовой пояс GMT +3, время: 17:54. |