В процессе разработки мы часто сталкиваемся с форматами, которые необходимо скорректировать, такие как сохранение двух десятичных мест после десятичной точки и т. Д. Метод также довольно распространен, обратите внимание на следующее.
Первый - использовать Math.Round
var Original = 28,453
1) // Круглый «Оригинал» до двух десятиков
var result = math.round (оригинал*100)/100; // возвращает 28,45
2) // круглый «оригинал» до 1 десятичного значения
var result = math.round (оригинал*10)/10; // возвращает 28,5
Второй тип, JS1.5 или выше, может использовать ToFixed (x) для указания числа для перехвата положения X после десятичной точки.
3) // Круглый «Оригинал» до двух десятиков
var result = original.tofixed (2); // возвращает 28,45
4) // круглый «оригинал» до 1 десятичного значения
var result = original.tofixed (1); // возвращает 28,5
Вышеуказанные два метода являются наиболее распространенными, но они не могут удовлетворить определенные специальные требования. Например, сохранение двух десятичных мест после десятичной точки. Если вы меньше двух цифр, вы наверстать наверстание нулей. В настоящее время есть третий метод.
Третий тип - функция преобразования. Этот код поступает с иностранного форума.
Кода -копия выглядит следующим образом:
Функция круглый (число, десятичные децималы) {
var newstring; // новый округлый номер
десятичные дзеры = число (десятичные знаки);
if (десятичные коэффициенты <1) {
Newstring = (Math.Round (номер)). ToString ();
} еще {
var numString = number.toString ();
if (numstring.lastindexof (".") == -1) {// Если нет десятичной точки
NumString += "."; // Дайте один в конце
}
var cutoff = numstring.lastindexof (".") + decimals; // точка, в которой можно усечь число
var d1 = number (numstring.substring (отсечение, отсечение+1)); // значение последнего десятичного места, которое мы получим
var d2 = number (numstring.substring (отсечение+1, отсечение+2)); // следующее десятичное значение, после последнего, мы хотим
if (d2> = 5) {// нам вообще нужно собрать? Если нет, строка будет просто усечена
if (d1 == 9 && cutoff> 0) {// Если последняя цифра составляет 9, найдите новую точку отсечения
while (cutoff> 0 && (d1 == 9 || isnan (d1))) {
if (d1! = ".") {
отсечка -= 1;
d1 = число (numstring.substring (отсечение, отсечение+1));
} еще {
отсечка -= 1;
}
}
}
D1 += 1;
}
if (d1 == 10) {
numstring = numstring.substring (0, numstring.lastIndexof ("."));
var RoundEdnum = number (numString) + 1;
Newstring = RoundedNum.toString () + '.';
} еще {
Newstring = numstring.substring (0, cutoff) + d1.toString ();
}
}
if (newstring.lastindexof (".") == -1) {// сделай это снова, к новой строке
Newstring += ".";
}
var decs = (newstring.substring (newstring.lastindexof (".")+1)). Длина;
для (var i = 0; i <decimals-decs; i ++) Newstring+= "0";
// var newNumber = number (Newstring); // Сделайте номер, если вам нравится
document.roundform.roundedfield.value = Newstring; // Вывод результат в поле формы (измените свои цели)
}
5) // Круглый «Оригинал» до двух десятиков
var result = original.tofixed (2); // возвращает 28,45
6) // круглый "оригинал" до 1 десятичного
var result = original.tofixed (1); // возвращает 28,5
var Original = 28,4
var result = original.tofixed (2); // возвращает 28,40