首页 > 解决方案 > php base_convert 不适用于非整数?

问题描述

我想3.1415使用 php 以 8 为基础编写(以 10 为基础编写)。

我期待3.11034,但base_convert(3.1415,10,8);正在返回75267......

php.net说第一个参数应该是一个数字,但它清楚地将它解释为一个整数。

标签: phpbase-conversion

解决方案


根据您指定的php doc,base_convert函数定义如下:

base_convert ( string $number , int $frombase , int $tobase ) : string

我们可以看到$number参数应该是一个字符串,但是如果我们将3.1415示例中的数字替换为包含相同数字的字符串,它仍然不起作用。但是您必须注意页面中的参数说明:

number - 要转换的数字。number 中的任何无效字符都会被静默忽略。

显然该函数忽略了一些字符。我们能想到的最合理的事情是,该函数可能会将小数点视为无效字符,毕竟 - 正如我所提到的,该函数将数字转换为字符串。我进行了测试,结果75267当我将数字设置为31415(不带小数点)时函数返回。

结论:该函数将小数点视为无效字符,数字只能是整数。


推荐阅读