ある金額の○○%引きの計算をする方法はたくさんありますが、この間プログラムないでそれを実装したときに不思議な計算結果に遭遇したので残しておこうと思います。
すべての場合に当てはまるとは思えないのですが、今回は55000円の55%引きの場合です。
電卓等で計算すると私の場合は
55000 * 0.45 = 24750
という計算方法で導きます。先ほども言いましたが計算方法は人それぞれです。
今回、実装されていたプログラム内での計算式は
55000 – (55000 *(55 / 100))
という計算式。
電卓でこの計算をすると要求通りの数字が出てくるのですが、なぜかJavascriptやPHPなどプログラムを介すとなぜか24749.999996となり、結果は変わります。
で、この結果になる原因は55/100を囲っている括弧のようで、これを取ると計算結果は問題ありませんでした。
数学やプログラムに詳しい方なら「あたりまえ!!」と突っ込まれそうですが原因がよくわかりません。
JSやPHPでもなったので言語特有のバグと言うことではないと思うのですが、、、