Michaly4
@Michaly4
Учусь всю жизнь учусь)

Написать функцию которая будет доставать именно дробную часть?

Приветствую ребята!
Пример:
console.log(0.2 + 0.1);
Здесь на выходе 0.30000000000000004
console.log (0.21 + 0.14);
Здесь 0.35
Как бы нужно, чтобы функция при вводе любого числа автоматом округляла,в первом вывела 0.3 а во втором именно 0.35!!Ну поставлю я .toFixed (1) уже не подойдёт до второго случая,где нужно чтобы именно 0.35 вывело!!
Я незнаю как это сделать ((поможете?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Определитесь, сколько значащих разрядов должно быть у дробной части.
Округлите до этого значения
Отбросьте незначащие нули.

Например так:

console.log(parseFloat((0.2 + 0.1).toFixed(3)));      // 0.3
console.log(parseFloat((0.21 + 0.14).toFixed(3)));   // 0.35


или так

console.log(Number(Math.round((0.2 + 0.1)+'e'+3)+'e-'+3));      
console.log(Number(Math.round((0.21 + 0.14)+'e'+3)+'e-'+3));


или так, без использования строк

console.log(Math.round((0.2 + 0.1) * 100) / 100); 
console.log(Math.round((0.21 + 0.14) * 100) / 100);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Tim-A-2020
@Tim-A-2020 Куратор тега JavaScript
// "0.3"
new Intl.NumberFormat('en', { maximumSignificantDigits: 2 }).format( 0.30000000000000004); 
// "0.35"
new Intl.NumberFormat('en', { maximumSignificantDigits: 2 }).format( 0.35)
Ответ написан
DanArst
@DanArst
Э, Ойboy!
Смотря сколько цифр после запятой хотите оставить. Например если 2, то можно так
console.log(parseInt((0.2 + 0.1) * 100) / 100);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
25 янв. 2021, в 13:08
2000 руб./за проект
25 янв. 2021, в 12:58
1950 руб./за проект
25 янв. 2021, в 12:53
1000 руб./за проект