假设我有一个字符串,其中包含“7.2769482308e+01”(这个数字来自第三方软件,我无法控制格式)。
什么是最便宜的方法将其转换为十进制72.769482308
?
我能想到的唯一解决方案是拆分小数+指数部分并使用乘法。但可能有一些内置的函数来做同样的事情吗?
注意:各位,是的,我读过Convert exponential to a whole number in PHP和Convert exponential number to decimal in php。这些问题是不相关的,因为它们已经有了一个数字,但我有一个字符串。
4条答案
按热度按时间rqqzpn5f1#
那么简单的转换为浮点值呢?
laawzig22#
我成功地使用了最初由this question提供的
number_format(1.2378147769392E+14, 0, '', '')
。当值是字符串时,这也有效,如下所示:
number_format("1.2378147769392E+14", 0, '', '')
.来吧,给予一试。rqcrx0a63#
这里有一个很便宜的:
$float = "7.2769482308e+01" + 0;
8xiog9wr4#
使其相对于
E
之后的位数的数量动态会好得多。使用
explode
获取这些数字精度,并使用sprintf
对其进行格式化。代码段:
Online Demo
注意:
sprintf
可能会根据小数位的样式进行四舍五入。