-PR-
解決済み

IF文の初歩的質問

  • すぐに回答を!
  • 質問No.44974
  • 閲覧数50
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 47% (767/1609)

フリーのショッピングカートに送料を足したいのですが、
合計額5,000円以上なら無料,そうでなければ500円と表示できません。perlはほとんど使っていないのでここでつまづいています。
if ($goukei2 > 5000 ) { print "無料\n"; } else { print "500円\n"; }
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 65% (25/38)

$zeibetsu_goukei2は3桁ごとにカンマで区切った
文字列です。
文字列は数値と比較する事はできません。

$zeibetsu_goukei2を$zeibetsu_goukeiとすれば、上手く行くと思いますよ。
お礼コメント
s-holmes

お礼率 47% (767/1609)

お手数をおかけしました。文字列だったわけですね、どうりで何の反応もしなかったわけでした。CGIというだけでビビッってしまって、「解読」しようというエネルギーがわいて来ない現状です。ありがとうございました。これを機会に少し勉強させていただきます。
投稿日時 - 2001-02-26 09:18:58
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 65% (25/38)

この構文については、問題ないと思いますよ。

この構文だけでは何とも言えませんが、$goukei2という変数は合計値に","カンマを入れたものではないですか?

$goukei2を検索してみて、

$goukei2 = $goukei;
1 while $goukei2=~ s/(.*\d)(\d\d\d)/$1,$2/g;

といった構文がないか確認してみて下さい。

もし、該当する場合は大元の$goukeiを使って、比較させて見て下さい。

それでも上手く行かない場合は、この構文自体を通っていない可能性があります。
Perlの場合、VBのような便利なツールがあまり無いため、
if ($goukei2 > 5000 ) { print "無料\n"; } else { print "500円\n"; }
の前あたりに、例えば$test="pass";でも付けて、
HTMLで書き出してみて、"pass"と表示されたら、通過している、表示されなかったら通過していないと言う形で
プログラムの通過状況をチェックしてみてください。
もし、通過していない場合は、その前の構文に問題があります。
補足コメント
s-holmes

お礼率 47% (767/1609)

回答ありがとうございました。まだ解決していなくて、合計が10,000円以上でも送料が表示されてしまいます。
長いのですが、ソースを提示します。御助言いただけると助かります。

1 while $zeibetsu_goukei2 =~ s/(.*\d)(\d\d\d)/$1,$2/g;
if ($taxrate != 0) {$tax = int($zeibetsu_goukei * ($taxrate / 100));
$sougoukei = $zeibetsu_goukei + $tax;1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g;
$zei = '税別';
}
else { $zei = ''; }
print "<tr><th bgcolor=\"azure\" colspan=4>$zei合計</th><th bgcolor=\"azure\">$zeibetsu_goukei2円</th><th></th></tr>\n";
if ($zeibetsu_goukei2 >= 5000 ) { print "<tr><th bgcolor=\"azure\" colspan=4>送料</th><th bgcolor=\"azure\">0円</th><th></th></tr>\n"; } else { print "<tr><th bgcolor=\"azure\" colspan=4>300円</th><th bgcolor=\"azure\">300円</th><th></th></tr>\n"; }
if ($taxrate != 0) { print "<tr><th bgcolor=\"azure\" colspan=4>消費税$taxrate\%($tax円)込み総合計</th><th bgcolor=\"azure\">$sougoukei円</th><th></th></tr>\n"; }
print "</table><p>\n";
投稿日時 - 2001-02-26 08:15:36


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ