![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
今回は、perlにて入力画面より税込価格を入力し、自動計算させて税抜き価格を表示させたい ということです。
しかし、今の記述方法ではきちんと計算されません。どういう記述をしたら良いのか?ご教授願います。
現在の記述は以下のようになっています。komipriceは、税込価格、nukipriceは税抜き価格です
$VD[$REC{Data}{nukiprice}]=sprintf("%.f",$VD[$REC{Data}{komiprice}]/1.05*1000000);
$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)(\d\d\d)/$1,$2/;
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
No.2ベストアンサー
- 回答日時:
以下のようにしてください。
1.入力値がカンマ区切りなのでカンマをとる。
2.消費税抜きの価格にする。
3.結果を3桁で区切る。
------------------------
$in = $VD[$REC{Data}{komiprice}];
#カンマをとる
$in =~ s/,//g;
#消費税抜きの価格にする
$out=int($in/1.05);
#3桁で区切る
$out2 = sprintf("%d",$out);
$ll = length($out2);
for ($i =0 ; $i < $ll; $i++){
if ($i%3 == 0 && $i != 0){
substr($out,$ll-$i,0) = ",";
}
}
#結果を格納する
$VD[$REC{Data}{nukiprice}]=$out2;
-----------------------------------
この回答への補足
さっそくのご回答ありがとうございます。
百の位も問題なく計算され、今まで遠回りしてたのがうそみたいです。
ほんとうに助かりました。
あと、表示の際に3桁区切りで、カンマを入れて見やすくしたいのですが
どのような記述をすればよろしいのでしょうか?
現在、(1)の場合は、十万の位まで (2)は百万の位の時でしかカンマが出なかったりします。
(1)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)/$1,$2/;
(2)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)(\d\d\d)/$1,$2,$3/;
たぶん、if文で6桁の時は(1) 7桁以上なら(2)という記述が必要なんだと思いますが
実際にどういった記述があればよいのか?
お手数ですがご教授頂ければと思います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
No.3
- 回答日時:
前回の回答の
--------------------
#3桁で区切る
$out2 = sprintf("%d",$out);
$ll = length($out2);
for ($i =0 ; $i < $ll; $i++){
if ($i%3 == 0 && $i != 0){
substr($out,$ll-$i,0) = ",";
}
}
#結果を格納する
$VD[$REC{Data}{nukiprice}]=$out2;
--------------------------------
が3桁毎にカンマで区切るところです。
$out2に3桁毎に区切った結果がはいっています。
出力結果が何桁でも対応しているはずですが、
期待した結果が得られませんでしょうか?
尚、
(1)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)/$1,$2/;
(2)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)(\d\d\d)/$1,$2,$3/;
の処理は必要ありません。
この回答への補足
while($VD[$REC{Data}{$_}]=~s/^([+-]?\d+)(\d{3})/$1,$2/g){}
}
}else{ @VU=@vtmp }
という一文がこの処理の前にあるのですがこれは関係ないのでしょうか?
(1)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)/$1,$2/;
(2)$VD[$REC{Data}{nukiprice}]=~s/(.*\d)(\d\d\d)(\d\d\d)/$1,$2,$3/;
ちなみにこの一文がなければ、カンマ区切りされませんでした。
No.1
- 回答日時:
> きちんと計算されません。
何がどう「きちんと」していないかを、ちゃんと説明しないと適切な回答がつかないと思います。
小数点が出てしまうのが問題だとしたら、以下のようにするとか。
$price -= int( $price * 5 / 105 );
この回答への補足
きちんと計算されないというのは、
一例を挙げると、19,950円(税込)だとすると
本来であれば、税抜き価格は19,000円となるはずが
19,024円と表示されてしまいます。
24円の部分が余計なのです。
しかも42,000円の場合だときちんと税抜き40,000円と表示されます。
この1件以外は、すべての数字において端数が表示されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 一戸建て プロパンガスの残存価格について 3 2022/05/31 14:08
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- 相続・譲渡・売却 不動産譲渡益の計算 3 2022/08/04 13:17
- 消費税 消費税の納税額の計算 1 2023/02/19 18:12
- 固定資産税・不動産取得税 中古マンションの土地・建物割合について 1 2022/06/02 15:06
- その他(税金) 今って税込価格の表示が義務付けられていますが、未だに個人店など内税での表示があります。特に飲食店。 4 2022/07/28 12:36
- ポイントサービス・マイル ポイントカード、バーコード決済等のサービスでポイントが付くものが多いです。 お店や会社によって違いま 5 2023/08/16 11:08
- 日用品・生活雑貨 税込価格がわかりません。 7 2023/02/07 11:09
- 専門店・ホームセンター そのホームセンターは昔、消費税込価格表示でした。 当時「当店は、消費税込価格表示です」と、客にその有 6 2023/01/15 10:11
- 小学校 インド人は「19×19」までの掛け算を小学生までに暗記するそうです。 5 2022/08/07 20:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlをwindows環境でshift-jis...
-
[perl5.8] SJISで出力したはず...
-
複数種類の括弧でくくられてな...
-
Data::Dumper;でダンプ後表示し...
-
HTTP::Request::Common qw(POST...
-
VBAでCSVファイルの特定行を書...
-
VBAでCSVファイルを途中行まで...
-
batファイルでrenameができませ...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
Firefox で file:// で始まる U...
-
ファイル出力の改行コードをLFに
-
Perlの変数に文字数制限(容量...
-
fopenでディレクトリ内の全ファ...
-
[Perl]ファイル出力のエンコー...
-
同じようなソースなのですが片...
-
エクセルVBA コードが同じでも...
-
巨大なテキストの最終行を取得...
-
エクセルVBAで素数だけを出力す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlをwindows環境でshift-jis...
-
Perl cgiの文字化けを直したい ...
-
perlでuse utf8でsjisのファイ...
-
HTTP::Request::Common qw(POST...
-
消費税の計算で 税込価格から...
-
does not map to shiftjis は解...
-
Perl:Unicodeプロパティ作れない
-
Perlでのファイル出力における...
-
Perl utf8上でshiftjisをデコード
-
複数種類の括弧でくくられてな...
-
Data::Dumper;でダンプ後表示し...
-
utf-8での日本語正規表現の書き方
-
[Perl]Shift-JISのXMLを解析する場
-
ファイル出力をUTF8Nではなくて...
-
perl5.8.3のunicode環境で日本...
-
perlで新規ファイルを作成でき...
-
perlでのtext読み込み
-
[perl5.8] SJISから読み込んだ~と
-
Perl 正規表現について
-
Perlを用いて、XMLファイルの中...
おすすめ情報