ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

Rubyの消費税計算の話

f:id:jun9632:20190830150844p:plain

最初、金額に消費税かけて切り上げすればOKでしょと思って

(price * tax).ceil

をしたところ

(400 * 1.1).ceil

の結果は、

441

となります。

くそ、、、

こんな親切な数字なのになんで 440 にならない、、、

くそ、、、

で実際

400 * 1.1

すると

440.00000000000006

になります。

僕には何に必要になるかわからない小数点以下の大量の 0 と 挙句の果てには 6 まで付いてきます。

その 6 を切り上げちゃってるので、結果 (400 * 1.1).ceil

441

になります。

計算方法

結果 僕が行き着いた計算方法がこちら

((price * tax).round(2)).ceil

基本的に、%なので 小数点第2位までを考えるため 小数点第3位を一応 四捨五入して、残った少数点第2位までを切り上げです。

(基本少小数点第3位は0になると思っています )

400円の 10% は

 400 * 1.1 = 440.00 => 440

401円 の8%は

 401 * 1.08 = 433.08 => 434 

になります。

まとめ

切り上げ

((price * tax).round(2)).ceil

四捨五入

((price * tax).round(2)).round

切り捨て

(price * tax).floor

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com