実現したいこと
141,750 - 20,817 = 120,933
としたい
前提
PHP7.x
chrome
以下ブラウザ上でフォームから数値を入力しPHPにてMysqlに保存する
という給与計算システムです。
給与 141750円という支給額をフォーム入力し
これに対して所得税やもろも計算をPHPにて計算したのち
控除額の合計が
20817 となった
単純に141750 ー 20817 として支払額を計算する
Mysqlにも支給額141750 と 控除合計20817 として保存されている
発生している問題
減算の結果が120,934円となる
該当のソースコード
PHP
1//支給額 2$bonus[0]="141750"; 3 4//控除計 5$bonus[8]=floor((string)($bonus[1]+$bonus[2]+$bonus[3]+$bonus[7]+$bonus[10]+$bonus[11]+$bonus[12]+$bonus[13])); 6//支払額 7$bonus[9]=$bonus[0]-$bonus[8];
試したこと
浮動小数点というものを知り
下記のように修正
$bonus[9]=floor((string)($bonus[0]-$bonus[8]));
ほとんどはこれで正常に処理されたが、一部の人だけ変わらず1円ずれる
$bonus[8]の中身のそれぞれの計算を膨大になりますので書けないのですが
floor((string)(A-B))
①上記の処理でも解決できない浮動小数点というものが存在するのかどうかを聞きたい
②その厳密な処理に関してはPHPでは限界があるのかを聞きたい
![guest](/img/icon/icnUserSample.jpg)
回答3件
あなたの回答
tips
プレビュー