微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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

如果不管 10 的幂,都需要一定的相对精度,可以按如下方式实现:

$float = 1.5670789671421E+12;

$round2 = (float)sprintf('%1.2e',$float);

printf('%1.6e',$round2);  //1.570000e+12

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。