gpt4 book ai didi

php - 将两个整数相除时如何获得浮点值? (PHP)

转载 作者:IT王子 更新时间:2023-10-29 00:02:53 26 4
gpt4 key购买 nike

您好,我正在尝试将两个整数相除,例如:12/13,但我总是得到一个整数 1 而不是十进制数。

我尝试将值强制转换为 float ,但没有成功。

基本上我想要的只是一个十进制结果,例如:0.923...

$x = 12;
$y = 13;
echo $value = $x / $y; //Would like to see 0.923 not 1

最佳答案

正常情况下你的代码应该返回浮点值0.923076...

您获得四舍五入整数的原因可能是因为您将 "precision"ini 设置 设置为 0,以解决此问题在计算之前编辑您的 php.ini 或使用 ini_set("precision", 3);

解决此问题的另一种方法是使用 BCmath :

echo $value=bcdiv($a, $b, 3);

另一种不使用任何扩展的方法是使用一个小数学技巧,将要除以 1000 的值乘以得到 3 位小数
这样你将 12000 除以 13,整个部分将是 923,然后因为你乘以 1e3 在前面插入一个逗号/点最后最多的 3 个地方。

function divideFloat($a, $b, $precision=3) {
$a*=pow(10, $precision);
$result=(int)($a / $b);
if (strlen($result)==$precision) return '0.' . $result;
else return preg_replace('/(\d{' . $precision . '})$/', '.\1', $result);
}

echo divideFloat($a, $b);//0.923

关于php - 将两个整数相除时如何获得浮点值? (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com