У меня есть переменная php, которая содержит значения типа ‘1.15’ в строковом типе данных. В основном я хочу преобразовать строковое значение в значение типа Float.
Когда переменная содержит значение наподобие 1.15, она преобразуется точно в число с плавающей запятой, но если переменная имеет значение наподобие 1.10, после преобразования в число с плавающей запятой она становится равной 1.1 (я хочу, чтобы она была 1.10)
Я пробовал несколько вещей, но я не могу конвертировать 1.1 в 1.10.
Так есть ли решение этой проблемы?
и помните, что в конце переменная должна иметь тип данных float и значение 1.10.
Компьютеры не люди. 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 );
На самом деле это не лучшая идея (очень редко встречаются с прототипами нативных объектов), и она работает только с числами, объявленными с использованием new Number
конструктор, а не числовые литералы. Я думаю, что вы могли бы продвинуть это дальше, но сама концепция принуждения языка изменить свое представление чисел вместо того, чтобы самостоятельно форматировать их для отображения, кажется странной.
Первое использование:
var newfloat = parseFloat(yourString).toFixed(2);
конвертировать в 2dp
затем используйте var float = parseFloat(newFloat);
(так как toFixed()
возвращает строку) для преобразования в число с плавающей точкой.