我有以下等式
1 - ((.5 * 0.83333333333333) ^ 2 + (.5 * 0.83333333333333) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2)
在 Php5 中,这导致答案为 1 而不是 0.63(在两台机器上,OSx 和 Centos)。我应该专门使用 Php 的 bc 数学函数来做这样的方程吗?
我有以下等式
1 - ((.5 * 0.83333333333333) ^ 2 + (.5 * 0.83333333333333) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2)
在 Php5 中,这导致答案为 1 而不是 0.63(在两台机器上,OSx 和 Centos)。我应该专门使用 Php 的 bc 数学函数来做这样的方程吗?
我想也许你应该使用pow()而不是xor 运算符 (^) :)
不是真正的方程式,而是语义。另外,我怀疑你的意思是异或,所以我认为这不是你想要的。无论如何,你能用有理算术吗?
0.83333 可以转换为分数(假设 3 是重复小数):
83.3333333 = 100x
8.3333333 = 10x
-----------------
75 = 90x
x = 75 / 90 = 0.83333...
这样你只处理整数,只要两者都没有溢出(你可以在操作之前和之后通过 GCD 减少),那么你应该没问题。
<?php
$hugeDamnEquation = pow(1 - ((.5 * 0.83333333333333), 2) + pow((.5 * 0.83333333333333), 2) + pow((.5 * (1 - 0.83333333333333)), 2) + pow((.5 * (1 - 0.83333333333333)), 2));
echo $hugeDamnEquation;
?>