php - php base_convert 不适用于非整数?
问题描述
我想3.1415
使用 php 以 8 为基础编写(以 10 为基础编写)。
我期待3.11034
,但base_convert(3.1415,10,8);
正在返回75267
......
php.net说第一个参数应该是一个数字,但它清楚地将它解释为一个整数。
解决方案
根据您指定的php doc,base_convert
函数定义如下:
base_convert ( string $number , int $frombase , int $tobase ) : string
我们可以看到$number
参数应该是一个字符串,但是如果我们将3.1415
示例中的数字替换为包含相同数字的字符串,它仍然不起作用。但是您必须注意页面中的参数说明:
number - 要转换的数字。number 中的任何无效字符都会被静默忽略。
显然该函数忽略了一些字符。我们能想到的最合理的事情是,该函数可能会将小数点视为无效字符,毕竟 - 正如我所提到的,该函数将数字转换为字符串。我进行了测试,结果75267
当我将数字设置为31415
(不带小数点)时函数返回。
结论:该函数将小数点视为无效字符,数字只能是整数。
推荐阅读
- r - R 中的错误:as.numeric(xij) 中的错误
- node.js - 无法使用 mlab-mongodb 向远程数据库发出 post 请求?
- algorithm - 二维数组中的总水容量,表示地形图
- c# - Xamarin 表单在 Toggle [Android] 上切换 IsToggled 绑定 NRE
- sql - Adding an apostrophe into a dynamic SQL
- gstreamer - 可以使用 multifilesink 保存带有时间戳的 jpegenc 图像
- java - Java 优化 - 局部变量与对象属性
- swift - 使用 ARKit 将画廊中的图像放在墙上
- html - IE11 中的 SVG 蒙版比例和缩放
- python-2.7 - 打开要追加的文件