PHP将字符串转换成浮点/双精度

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP将字符串转换成浮点/双精度脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有字符串列表(以字节为单位),我从文件中读取.让我们说一个字符串是2968789218,但是当我把它转换成float它变成2.00.

这是我的代码到目前为止

$string = "2968789218";
$float = (float)$string;
//$float = floatval($string);
//the result is same
// result 2.00

任何人?

解决

问题实际上是编码.当我更改文件编码时,现在很好:D

令人惊讶的是没有接受的答案.这个问题只存在于32位PHP中.

documentation,

换句话说,$string首先解释为INT,这会导致溢出($string值2968789218超过32位PHP的最大值(PHP_INT_MAX),即2147483647),然后通过(float)或floatval().

因此,解决方案是:

$string = "2968789218";
echo 'Original: ' . floatval($string) . PHP_EOL;
$string.= ".0";
$float = floatval($string);
echo 'Corrected: ' . $float . PHP_EOL;

输出

Original: 2.00
Corrected: 2968789218

要检查您的PHP是32位还是64位,您可以:

echo PHP_INT_MAX;

如果您的PHP是64位,它将打印出9223372036854775807,否则将打印出2147483647.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP将字符串转换成浮点/双精度全部内容,希望文章能够帮你解决PHP将字符串转换成浮点/双精度所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。