我有一个php变量,它包含字符串数据类型中的'1.15‘这样的值,基本上我想将字符串值转换为浮点值。
当变量包含像1.15这样的值时,它会被精确地转换为浮点型,但是如果变量在转换为浮点型后具有像1.10这样的值,那么它就变成了1.1 (我希望它是1.10)
我已经尝试了一些东西,但我不能将1.1转换到1.10。
那么这个问题有什么解决方案吗?
记住,最后变量的数据类型应该是浮点型,值应该是1.10
发布于 2014-11-21 21:20:08
计算机不是人类。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 );这并不是最好的想法(搞乱原生对象原型是很少的),而且它只适用于使用new Number构造函数声明的数字,而不是数字文字。我认为你可以更进一步,但是强迫语言改变它的数字表示而不是自己格式化它们来显示的概念看起来很奇怪。
发布于 2014-11-21 20:26:23
第一次使用:
var newfloat = parseFloat(yourString).toFixed(2);转换为2dp的步骤
然后使用var float = parseFloat(newFloat); (因为toFixed()返回字符串)再次转换为浮点型。
https://stackoverflow.com/questions/27061322
复制相似问题