【问题标题】:php - bcadd has different point precisionphp - bcadd 具有不同的点精度
【发布时间】:2015-08-14 15:43:57
【问题描述】:

当我运行时在我的 Windows 框上

  $SR = "0";
  $SPR = "149";
  $SR = bcadd($SR, $SPR);
  echo "$SR"; 

它输出149.0000000000

但是当我将相同的代码上传到我的 Linux 主机时,输出是 149

为什么?

【问题讨论】:

  • PHP 浮点精度取决于操作系统,如 PHP 手册中所述

标签: php floating-point-precision bcmath


【解决方案1】:

可能这两种环境的“规模”不同。

在进行操作之前尝试使用bcscale函数设置比例,例如:

bcscale(3);

$SR = "0";
$SPR = "149";
$SR = bcadd($SR, $SPR);
echo "$SR"; 

或者直接使用bcadd中的第三个参数来设置比例:

$SR = "0";
$SPR = "149";
$SR = bcadd($SR, $SPR, 3);
echo "$SR"; 

【讨论】:

  • 是的,需要bcscale(0);,谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
  • 2012-10-25
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多