bcmath

    1热度

    2回答

    运行以下内容,我期望收到N, Y, Y。 我明白为什么我不能,因为'0.00' != '0'对第二个例子,但有测试0一个一致的方式而无需进行转换回浮点/双,并且不丢弃的===到==。 echo bcmul('5.1', '2.234', 2); echo bcmul('5.1', '2.234', 2) === '0' ? ' Y ' : ' N '; echo "<br/>"; echo

    3热度

    1回答

    我有一段简单的代码如下。 $amount = 447274.44882; $rate = 0.00001; echo floatNumber(bcmul($amount, $rate, 8), 8); 当它应该是4.47274449时,它输出0.00000000。如果我改变率0.0001然后将其输出正确的号码,任何超过4个小数高,它报告0 我做得不对或这是一个已知的限制还是什么?如果是这

    3热度

    1回答

    我有约10-15个数字,我的数据库中有1,2或3位小数的精度,包括有符号和无符号。所使用的数据类型的 例子: decimal(10,3), decimal(10,2), decimal(10,1) 我计算它们在PHP是这样的: $result = ($value1from_col1 + ($value2from_col2 * 30)/500) * 0.453; 然后我用一些像这样的roun

    0热度

    1回答

    我目前在项目中使用BC数学扩展。 在我的单元测试有一些比较,这将是类似于下面: 这将传递: $this->assertEquals('1.23456789123456789123434', '1.2345678912345678912343434654654654654' ); 这不会通过: $this->assertEquals('1.23456789

    4热度

    2回答

    我需要启用BC数学,但我不想使用--enable-bcmath来完成,主要是因为我不了解那条路线。 有没有办法只使用php.ini做到这一点?

    1热度

    1回答

    我正在从数据库查询中获取几个值。我得到的值是这样的: 10.810000000000000497我想用'10.81'。 或 2.6899999999999999467,我想只使用2.69使用 ini_set('precision', 20)时 ; 如何应该如何使用这个值与bcadd()例如?因为我只想添加10.81 + 2.69?

    1热度

    1回答

    我的网络主机报告PHP_INT_MAX是2147483647,即它是32位环境。我试图转换当前在64位环境中运行的几个数学运算,以便它们也可以在32位环境中运行。 $id = '76561197996545192'; $temp = ''; for ($i = 0; $i < 8; $i++) { $temp .= chr($id & 0xFF); $id >>= 8;

    0热度

    1回答

    我有一个项目,存储在bigint列在数据库中的钱(存储在美分)。我打算重写这个东西来代替使用BCMATH。我不介意整数,但他们给我一些存储在美分中的可怕四舍五入错误事件,我怀疑我可能在BCMATH中有相同的舍入错误。问题出现在的情况下,想在这个伪代码: $price = $some_price_in_cents * $store_price_increase; // second value is

    1热度

    1回答

    我试图使用PHP中的BCMATH计算税或折扣价值。我需要2个十进制位置。下面是如何我做它: bcscale(2); $price = '60.67'; $discount = bcmul(bcdiv($price, 100), '3.8'); // calculate 3.8 percent from 60.67 // result is: 2.28 // result should be

    -2热度

    1回答

    在我的函数中我想用php bc-math来提高精度。我试图取代所有的操作无济于事。这是浮动到字符串的转换问题吗? function complex_iterate($re,$im) { $re=strval($re); $im=strval($im); $zisqr = $zrsqr = $iter = $zIm = $zRe = "0"; bcs