0

私は次の方程式を持っています

1 - ((.5 * 0.83333333333333) ^ 2 + (.5 * 0.83333333333333) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2)

Php5 では、これは .63 ではなく 1 という結果になります (OSx と Centos の 2 つのマシンで)。このような方程式を行うには、Php の bc 数学関数のみを使用する必要がありますか?

4

3 に答える 3

5

xor 演算子の代わりにpow()を使用する必要があると思います(^) :)

于 2008-11-12T18:14:21.900 に答える
1

実際には方程式ではありませんが、それはセマンティクスです。また、あなたが xor を意味しているとは思えないので、それはあなたが望んでいるものではないと思います。とにかく、あなたは有理数演算を使うことができますか?

0.83333 は分数に変換できます (3 が繰り返し小数であると仮定します)。

 83.3333333 = 100x
  8.3333333 = 10x
 -----------------
         75 = 90x
     x = 75 / 90 = 0.83333...

そうすれば、整数のみを処理し、両方がオーバーフローしない限り (操作の前後に GCD を減らすことができます)、問題ありません。

于 2008-11-12T18:18:09.397 に答える
1
<?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;

?>
于 2008-11-12T18:27:20.533 に答える