[過去ログ] Perlについての質問箱 64箱目 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
111(5): 2019/11/06(水)01:45 ID:yvB3xxPc(1/5) AAS
消費税計算(10%)しようとしました。税込550円を消費税と本体価格にする。
$a = 550;
$b = 1.1;
$c = $a / $b;
$d = $a - $c;
$e = int($c);
$f = int ($d);
print すると、
$c は 500
$d は 50.000000000001(0の数はだいたい)
$e は 499
$d は 50
とうやら550 / 1.1 が内部的に割り切れていない様子(おそらく実際は内部的に499.99999999999999になってるのでintすると499に)
ロジックの変更で回避したけど、このバグ聞いたことありますか?
118: 2019/11/06(水)10:08 ID:yvB3xxPc(2/5) AAS
>>112
>>113
>>114
>>117
仕様で他の言語でもあるのですね。Perlで明示的な型指定とかはほぼ考えたことが無かった(1.08の時は意図した結果が得られていた)ので、勉強してみます。
ありがとうございます。
121(1): 2019/11/06(水)18:58 ID:yvB3xxPc(3/5) AAS
>>111
一応、取った対応策です(消費税計算なので精度は不要)
除算解は有効桁数以下が切り捨てになり表示などで見える値以下になると想定しました
$a = 550;
$b = 1.1;
$c = ;
$tax= int($a - $a / $b); # $tax = 50
$net = $a - $tax; # $net = 500
端数を残したまま税込から除算解を引いてintして税とし、税込から税を引いて本体としました
とりあえず期待した結果は得られています
ありがとうございました。
122: 2019/11/06(水)18:59 ID:yvB3xxPc(4/5) AAS
$c = ;
この行余計でした
125(1): 2019/11/06(水)20:39 ID:yvB3xxPc(5/5) AAS
>>124
うちは税込ものを分離する時は消費税側で小数点以下切り捨てなのでOKなのです
四捨五入とか会計方針によっては稀に問題が出るかもしれませんね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.453s*