php - 如何修复PHP中两位十进制数的浮点数?
问题描述
在某些情况下,当预期是十进制时,我的 PHP 脚本会生成这种类型的编号。如何解决它,以便将来不会发生此问题?
号码结果: 1.0000789671421E+15
预期数字为: 1.00
解决方案
您需要指数符号中逗号后的 2 个位置。当知道十的幂时,您可以使用 round 。我将选择另一个例子来更好地展示这一点。
$float = 1.1230789671421E+15;
$round1 = round($float,-13);
var_dump($round1); //float(1.12E+15)
如果只对输出进行舍入,则可以使用printf()来完成。
printf('%1.2e', $float); //1.12e+15
如果无论十次方如何都需要一定的相对精度,则可以按如下方式实现:
$float = 1.5670789671421E+12;
$round2 = (float)sprintf('%1.2e',$float);
printf('%1.6e',$round2); //1.570000e+12
推荐阅读
- bash - 循环 ls exclude 的 Bash 脚本
- geopandas - 为什么 Geoseries.translate 不起作用,即使使用 geopandas 给出的例子?
- pandas - Pandas Lambda 函数无法正常工作
- powerbi - DAX 使用关联从另一个表中取平均值
- vim - Vim 自定义配色方案问题
- python - Django-Sorting-Bootstrap Heroku 推送失败
- python - 如何在 python 数据帧中生成缺少的weekids
- python - 如果处理步骤不是张量操作,如何获得处理后的数据集?
- java - 无法使用 Maven 的层次结构和自定义项目内存储库解决依赖关系
- html - 我如何:将 HTML/CSS 中的 iframe 视点设置为一个屏幕而不是另一个屏幕的自动大小