首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为浮点型,最多2位小数

问将字符串转换为浮点型,最多2位小数
EN

Stack Overflow用户
提问于 2014-11-21 20:23:07
回答 2查看 2.9K关注 0票数 0

我有一个php变量,它包含字符串数据类型中的'1.15‘这样的值,基本上我想将字符串值转换为浮点值。

当变量包含像1.15这样的值时,它会被精确地转换为浮点型,但是如果变量在转换为浮点型后具有像1.10这样的值,那么它就变成了1.1 (我希望它是1.10)

我已经尝试了一些东西,但我不能将1.1转换到1.10。

那么这个问题有什么解决方案吗?

记住,最后变量的数据类型应该是浮点型,值应该是1.10

EN

回答 2

Stack Overflow用户

发布于 2014-11-21 21:20:08

计算机不是人类。1.1是将Number对象转换为人类可读格式的结果,1.10也是如此。毕竟,1.10 === 1.1和将冗余数据放在尾随零中将是对资源的浪费。

无论何时您想要显示变量的值,它都需要一些转换,因此,要使数字1.1显示为1.10而不显式地将其转换为字符串(如toFixed()),您唯一的方法就是将其连接到内部。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2014-11-21 20:26:23

第一次使用:

代码语言:javascript
复制
var newfloat = parseFloat(yourString).toFixed(2);

转换为2dp的步骤

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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27061322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档