Привет. Сегодня в колонке про Javascript мы рассмотрим как задать на javascript количество знаков после запятой в числах с плавающей запятой. Например нужно оставить 3 знака после запятой при выводе, или только два.

Javascript количество знаков после запятой

Задача: javascript количество знаков после запятой

Итак, перед нами стоит задача: есть результат вычислений, в котором есть цифры перед запятой, и после запятой. Десятичная дробь. Допустим результат получился вот такой 1538.9891200153. Но при выводе должно получится число, отражающее сумму, где до запятой количество банкнот, а после — копеек.

Есть несколько способов решения это задачи.

Решение 1: javascript количество знаков после запятой при помощи метода toFixed

toFixed — это встроенный в javascript метод, который применяется к любому числу, в качестве параметра принимает точность округление (то есть количество знаков после запятой).

var num=1538.9891200153;
num_str=num.toFixed(); //num_str=1538;
num_str=num.toFixed(2); //num_str=1538.98;
num_str=num.toFixed(5); //num_str=1538.98912;

Параметр точности в этой функции должен быть не меньше 0 (не принимает отрицательные значения), и не больше 20.

Также можно обойтись без переменной, например вот так:

num_str=(1538.9891200153).toFixed(2); //num_str=1538.98;

Решение 2: javascript количество знаков после запятой при помощи метода toPrecision

Это решение базируется на таком же встроенном методе javascript. Отличительной особенностью этого метода является то, что параметр, принимаемый на вход обозначает не точность (количество знаков после запятой), а общее количество знаков (как до запятой, так и после неё).

var num=1538.9891200153;
num_str=num.toPrecision(5); //num_str=1538.9;
num_str=num.toPrecision(7); //num_str=1538.989;

Решение без знаков после запятой: javascript количество знаков после запятой

Если же знаки после запятой нужно полностью откинуть, то есть нужно округлить дробное число до целого, то можно использовать функции класса Math: round, ceil и floor.
Round — округляет в большую или меньшую сторону (в зависимости от числа). Если значение после запятой больше половины, то округлит в большую сторону, если меньше — в меньшую. То есть если 0.51 — станет 1, если 0.49 — 0.

Ceil — от англ. потолок округляет всегда в большую сторону.

Floor — от англ. пол округляет всегда в меньшую сторону.

var num = 1538.9891200153;
num_str=Math.round(num); //num_str=1539;
num_str=Math.floor(num); //num_str=1538;
num_str=Math.ceil(num); //num_str=1539;

На этом всё. Надеюсь эта заметка помогла вам решить поставленную задачу. Если что-то не получилось — задавайте вопросы с помощью зеленой кнопки «Задать вопрос специалисту», или в комментариях.