2016-05-13 5 views
0

Magento CE 1.9で丸めバグの解決策を見つけることができませんでした。Magento rounds合計で0.01ポンドダウン

https://magento.stackexchange.com/a/97554/7857

public function roundPrice($price) 
{ 
    return round($price, 4); 
} 

これは、いくつかの地面を保持が、影響を行いません。だから私は尋ねようとします。

私には税込みで£25.00の商品があります。カートに追加した場合、総額は£25.00です。税金は£4.17(20%)です。

次に、もう1秒(数量2)を追加します。 £25.00 * 2 = £50.00しかしこれはそうではありません。

合計£49.99

私はthe famous floating point php issueを模索しようとしたが、思いついたsoildていませんでした、税£8.33(20%)です。

+1

テスト価格を10進数で印刷してみてください。あなたのケースは、価格の内部表現が24.997で、25.00に丸められ、49.994が2回、49.99に丸められた場合に発生します。 – LutzL

答えて

0

あなたは、PHPのfloor機能を検討する必要があります:あなたはceilを使用し、アップに行きたい場合、これは、

逆に鼻の上に50を返しますfloor(25.01); // 25

$price = 25.01; 
$qty = 2; 
$result = $qty * floor($price); 

+1

これは非常に限定された解決策です。単価が25.30の場合はどうなりますか? – LutzL

+0

@LutzLここでは微妙な違いについて話しています。もしそれより大きければ、30セントにも対処する方法があります。 –

+1

だから、私は「限定」と書いている。それは「過度に専門化された」と読むこともできる。 – LutzL

関連する問題