>我有一个php变量,它在字符串数据类型中包含像"1.15"这样的值,基本上我想将字符串值转换为Float值。
当变量包含像 1.15 这样的值时,它会精确地转换为浮点数,但如果变量在转换为浮点数后具有像 1.10 这样的值,它就会变成 1.1(我希望它是 1.10)
我已经尝试了一些方法,但我无法将 1.1 转换为 1.10。
那么这个问题有什么解决方案吗?
请记住,最后变量应该具有数据类型浮点数和值 1.10
计算机不是人类。 1.1
是将Number
对象转换为人类可读格式的结果,1.10
也是如此。 毕竟1.10 === 1.1
将冗余数据保留在尾随零中将是浪费资源。
任何时候你想显示变量的值,它都需要一些转换,所以你唯一的行动过程是将数字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
而不是数字文字。我认为你可以更进一步,但是强制语言改变其数字表示而不是自己格式化它们以显示的概念似乎很奇怪。
第一次使用:
var newfloat = parseFloat(yourString).toFixed(2);
转换为 2DP 的步骤
然后使用 var float = parseFloat(newFloat);
(因为toFixed()
返回字符串)再次转换为浮点数。