2015-05-15 3 views
1

Каков наилучший способ выполнения следующих преобразований в JavaScript? У меня есть валюты, хранящиеся как float, которые я хочу округлить и преобразовать в целые числа.Преобразование чисел с плавающей запятой в целые числа, округление до 2 десятичных знаков в JavaScript

1501.0099999999999909 ->150101

12.00000000000001 ->1200

+2

Вы просто делаете 'Math.Round (Чис * 100) ' – wrschneider

+0

Я не выбрал метод, но это, безусловно, кажется самым простым. Существуют ли здесь дополнительные недостатки в области точности? –

ответ

1

Один из способов сделать это является использование метода toFixed покинуть номер в сочетании с parseFloat.

Например,

var number = 1501.0099999999999909; 
var truncated = parseFloat(number.toFixed(5)); 
console.log(truncated); 

toFixed принимает в число знаков после запятой оно должно быть сокращено до.

Чтобы получить вывод, что нужно, вам нужно будет `toFixed только (2)» и множественная результат на 100.

Eg,

var number = 1501.0099999999999909; 
var truncated = parseFloat(number.toFixed(2)) * 100; 
console.log(truncated); 
+0

И вы рекомендуете просто умножить это на 100? –

+0

@WindUpToy обновленный ответ. –

Смежные вопросы