javascript — конвертирует строку в число с плавающей запятой до 2 десятичных знаков

У меня есть переменная php, которая содержит значения типа ‘1.15’ в строковом типе данных. В основном я хочу преобразовать строковое значение в значение типа Float.

Когда переменная содержит значение наподобие 1.15, она преобразуется точно в число с плавающей запятой, но если переменная имеет значение наподобие 1.10, после преобразования в число с плавающей запятой она становится равной 1.1 (я хочу, чтобы она была 1.10)

Я пробовал несколько вещей, но я не могу конвертировать 1.1 в 1.10.

Так есть ли решение этой проблемы?

и помните, что в конце переменная должна иметь тип данных float и значение 1.10.

0

Решение

Компьютеры не люди. 1.1 является результатом преобразования Number объект в удобочитаемом формате, так это 1.10, 1.10 === 1.1 В конце концов, хранение избыточных данных в конечных нулях будет пустой тратой ресурсов.

Каждый раз, когда вы хотите отобразить значение переменной, она нуждается в некотором преобразовании, поэтому ваш единственный способ действия — иметь Number 1.1 отображаться как 1.10 без явного преобразования его в строку (например, toFixed()) это подключить к внутренностям.

Number.prototype.toString = function(){
return this.toFixed(2);
}

var oneone = new Number( 1.1 );
// since implicit conversion to string is required it will show 1.10
alert( oneone );

http://jsfiddle.net/Lhxe1tu9/

На самом деле это не лучшая идея (очень редко встречаются с прототипами нативных объектов), и она работает только с числами, объявленными с использованием new Number конструктор, а не числовые литералы. Я думаю, что вы могли бы продвинуть это дальше, но сама концепция принуждения языка изменить свое представление чисел вместо того, чтобы самостоятельно форматировать их для отображения, кажется странной.

0

Другие решения

Первое использование:

var newfloat = parseFloat(yourString).toFixed(2);

конвертировать в 2dp

затем используйте var float = parseFloat(newFloat); (так как toFixed() возвращает строку) для преобразования в число с плавающей точкой.

-1

По вопросам рекламы [email protected]