0
データベースの値のリストを取得し、すべての行の合計を取得するために追加します。 PHPは追加を正しく行っていないため、なぜその理由が分かりません。私は何をしているのかお金を稼いでいる。結果はゼロになりますが、PHPは結果を$ -1.78と計算しています。次の何が問題である:値のリストを追加するPHPが正しく合計されない
public function testAddition()
{
$data = ['23.21','-38.20','14.99','0.00'];
$total = 0;
foreach ($data as $value) {
$total += round(floatval($value), 2);
var_dump($value); // value to add
var_dump($total); // new total
}
// PHPunit results a success to zero, this is wrong, $total = -1.776...
$this->assertEquals(0, $total);
}
出力以下:
string(5) "23.21" // value to add
float(23.21) // new total
string(6) "-38.20" // value to add
float(-14.99) // new total
string(5) "14.99" // value to add
float(-1.7763568394003E-15) // <-- this is wrong, should be zero
string(4) "0.00" // value to add
float(-1.7763568394003E-15) // new total
ありがとう私はこれを投稿した直後に私のエラーを見つけました。私たちのHTMLフォームは通貨を'12、345.67 'でフォーマットします。指数を取り除いて浮動小数点数に変換する前に、入力文字列から非数値を取り除く共通のルーチンがあります。愚かな問題。 – user3720435