2013-11-20 2 views
-1

Таким образом, для округления Я используюКак преобразовать число плавать

Math.round(num * 100)/100; 

Но я также нужны десятичные как этот

1 => 1.00 
1.5 => 1.50 
1.456 => 1.46 

достичь этого с

num.toFixed(2); 

, но это возвращает строка, я знаю, что это должна быть строка. Однако есть ли способ получить ту же функциональность, но возвращать значения float, а не строку?

1 is the same amount as 1.00 

Для чего нужны эти нули? Поскольку API, с которым я работаю, ожидает только float. Событие 1 должно быть передано как 1.00 float. Есть идеи?

+0

Эта проблема является логически ошибочной ... Вы хотите, чтобы 1.1 (это число) представлялось как «1.10» (это строка). Но в мире чисел нет 1.10, потому что это 1.1, потому что нет никакого значения для последнего десятичного числа, так как оно равно нулю. – marekful

+0

в js 1 === 1.00, так что вы ничего не можете сделать, чтобы отличить эти «две» фигуры. Только при преобразовании из/в строку может возникнуть такой вопрос. – GameAlchemist

+0

@ MarcellFülöp точно, так что это проблема с api –

ответ

3

При возврате аргументов просто преобразуйте их в поплавки из строки, используя parseFloat() в строке, которую вы получите. Форматирование не является частью типа float и поэтому сохраняется только значение. Если вам нужно форматирование, а также значение, должен быть создан пользовательский класс.

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