将包含科学计数法数字的字符串转换为 PHP 中的双精度数
我需要帮助将包含科学记数法数字的字符串转换为双精度数。
示例字符串: “1.8281e-009” “2.3562e-007” “0.911348”
我正在考虑将数字分解为左侧的数字和指数,而不只是进行数学运算来生成数字;但有没有更好/标准的方法来做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
PHP 是
无类型动态类型的,这意味着它必须解析值以确定其类型(最新版本的 PHP 具有类型声明)。在您的情况下,您可以简单地执行数值运算来强制 PHP 将值视为数字(并且它理解科学记数法
x.yE-z
)。例如,尝试
仅加 1(也可以减零)将使字符串变成数字,并具有适当的小数位数。
结果:
您还可以使用
(float)
来转换结果PHP is
typelessdynamically typed, meaning it has to parse values to determine their types (recent versions of PHP have type declarations).In your case, you may simply perform a numerical operation to force PHP to consider the values as numbers (and it understands the scientific notation
x.yE-z
).Try for instance
just adding 1 (you could also subtract zero) will make the strings become numbers, with the right amount of decimals.
Result:
You might also cast the result using
(float)
以下代码行可以帮助您显示bigint值,
请参考此链接。
Following line of code can help you to display bigint value,
refer with this link.
一起使用
number_format()
和rtrim()
函数。例如,我创建了一个函数,具有更多函数(不是双关语)
Use
number_format()
andrtrim()
functions together. EgI created a function, with more functions (pun not intended)
我发现一篇文章,使用 number_format 将值从浮点科学记数法数字转换为非科学记数法数字:
帖子中的示例:
I found a post that used number_format to convert the value from a float scientific notation number to a non-scientific notation number:
Example from the post:
使用 0.000077240388
work with 0.000077240388
我尝试了 +1,-1,/1 解决方案,但如果不使用 round($a,4) 或类似的方法对数字进行四舍五入,这还不够
I tried the +1,-1,/1 solution but that was not sufficient without rounding the number afterwards using round($a,4) or similar