【问题标题】:PHP calculation always round upPHP计算总是四舍五入
【发布时间】:2022-01-09 06:20:09
【问题描述】:

所以,我想计算两个变量并将它们相乘以自动计算每单位价格。一切正常,但只要我开始计算,结果就会四舍五入。

一个例子:

14,94 * 100 应该是 1495 但我得到 1400。

尝试了 number_format、round、ceil 等......没有解决问题。

这是代码,我已经有 $weight 和 $price 作为当前数字,所以这不是问题。

$gewicht_angabe = strip_tags ($weight);
$preis_angabe = strip_tags ($price);
$ergebnis = number_format((($preis_angabe * 100) / $gewicht_angabe), 2);

我在 MariaDB 上安装了 PHP 7.4,我可能缺少什么吗?

编辑:

@maik-lowrey 已解决问题。这是我想要的固定代码:

$gewicht_angabe = strip_tags ($weight);
$preis_angabe = strip_tags ($price);
$preis_angabe = str_replace(',', '.', $preis_angabe);
$ergebnis = number_format((($preis_angabe * 100) / $gewicht_angabe), 2);

【问题讨论】:

  • 你为什么使用strip_tags()?请edit您的问题包括var_dump($gewicht_angabe, $preis_angabe);的输出
  • 请注意,如果我们用一个简单的$a = 14.94; $b = 100; echo $a * $b; 测试这个声明,我们会得到1494,它应该是。因此,如果这不是您正在发生的事情,您将不得不显示minimal reproducible example,以便其他人可以看到您正在使用的(大大减少的)代码发生的相同事情。仅根据您的文字声明,这是不可重现的。
  • 这是我的第一个用例,抱歉,如果我犯了一些错误。我会为以后的问题添加更多细节,但现在我的问题已经被@maik-lowrey 解决了

标签: php rounding calculator number-formatting calculation


【解决方案1】:

你遇到的问题是你想用一个字符串来计算。 14.95' 是一个字符串。您需要的是 14.95'。例如,您可以替换它。

$a = "14,95";
$b = 100;
$a = str_replace(',', '.', $a);
echo $a * $b;
// 1495

【讨论】:

  • 确实有帮助,非常感谢!现在在第二行和第三行之间有一个新行如下所示:$preis_angabe = str_replace(',', '.', $preis_angabe);
猜你喜欢
  • 2012-09-26
  • 2014-10-29
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
相关资源
最近更新 更多