将String转换为Float最多2个小数位

时间:2014-11-21 12:23:07

标签: javascript php jquery html floating-point

我有一个php变量,其中包含字符串数据类型中的'1.15'等值,基本上我想将字符串值转换为Float值。

当变量包含像1.15这样的值时,它会完全转换为float,但如果变量在转换为float之后的值为1.10,则变为1.1(我希望它为1.10)

我尝试了一些但我无法将1.1转换为1.10。

这个问题还有解决办法吗?

并记住最后变量的数据类型为float,值为1.10

2 个答案:

答案 0 :(得分:0)

计算机不是人类。 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构造函数声明的数字,而不是数字文字。我认为你可以进一步推动它,但强迫语言改变数字表示而不是为显示器自己格式化的概念似乎很奇怪。

答案 1 :(得分:-1)

首次使用:

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

转换为2dp

然后使用var float = parseFloat(newFloat);(因为toFixed()返回字符串)再次转换为float。