- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
您好,我正在尝试将两个整数相除,例如: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/
我想在 Coq 中除两个数字,因为我试图实现我自己的自定义 Imp 语言并有一个声明: match (aeval st a1) with | Some n0 => Some (ND
我想在 Coq 中除两个数字,因为我试图实现我自己的自定义 Imp 语言并有一个声明: match (aeval st a1) with | Some n0 => Some (ND
我的任务是解决一个我不太确定如何用数学方法解决的问题。 我正在尝试创建一个以 int 数组作为参数的方法。数组的长度会变化,但永远不会为零。数组中的值并不重要,因为该方法将使用下面确定的值覆盖它们。
我是一名优秀的程序员,十分优秀!