php 是不是具有解析字符串中的指数的函数(例如:“9.5367431640625e-05”)还是必须通过正则表达式等手动完成?
Posted
技术标签:
【中文标题】php 是不是具有解析字符串中的指数的函数(例如:“9.5367431640625e-05”)还是必须通过正则表达式等手动完成?【英文标题】:does php have a function that parses exponents in strings (eg: "9.5367431640625e-05") or does it have to be done manually via regexp etc?php 是否具有解析字符串中的指数的函数(例如:“9.5367431640625e-05”)还是必须通过正则表达式等手动完成? 【发布时间】:2011-09-01 13:35:16 【问题描述】:php 是否有一个函数可以转换字符串(数据类型将是字符串,因为它是从外部源解析的),例如:
string(..) "9.5367431640625e-05"
并对所述字符串进行指数计算并返回计算值?
或者我需要使用正则表达式等风格的方式来做类似的事情:
9.5367431640625e-05 -> 9.5367431640625^-5 = calculated value
如果 php 没有这样的功能,最好的想法是如何做到这一点?我只是要模式匹配类似的东西
/^([0-9\.\-]+)e([0-9\.\-]+)$/
有更好的想法吗?
谢谢!
【问题讨论】:
floatval
?
【参考方案1】:
你可以做一个简单的演员:
$float = (float)$string;
但是除了检查0
(这可能是一个有效值...)之外,没有办法进行错误检查。您也可以使用 floatval()
函数,它的作用相同。
但通常您不必这样做,因为 PHP 会根据需要进行转换。注意文档的那一章:http://de.php.net/manual/en/language.types.type-juggling.php
【讨论】:
两个答案都很棒!之所以选择这个,是因为提到了 floatval。衷心感谢您!【参考方案2】:做一个演员:
$float = (float) $string;
【讨论】:
以上是关于php 是不是具有解析字符串中的指数的函数(例如:“9.5367431640625e-05”)还是必须通过正则表达式等手动完成?的主要内容,如果未能解决你的问题,请参考以下文章