php base_convert 不适用于非整数?

php base_convert not working for non-integers?

我想用 php 在基数 8 中写 3.1415(在基数 10 下写)。

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

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

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

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

我们可以看到$number参数应该是一个字符串,但是如果我们把你例子中的数字3.1415换成包含相同数字的字符串,还是不行。但是一定要注意页面下方的参数说明:

number - The number to convert. Any invalid characters in number are silently ignored.

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

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