質問: ### 前提・実現したいこと 最終的に購入者が支払う旅行代金を算出したいです。 ただ算出に当たっては、1泊当たり20,000円を上限に、代金の2分の1に相当する金額が割引となります。 例 1泊2日 旅行代金50,000円の場合、半額は25,000円ですが、上限が20000円なので 旅行代金の支払額は30,000円 例 2泊3日 旅行代金50,000円の場合、半額は25,000円、上限が20000円X2泊=40,000円なので、旅行代金の支払額は25,000円 ### 発生している問題・エラーメッセージ 1泊当たりのおひとり様代金X泊数で通常の旅行代金の算出はできたのですが、 旅行代金の半額に対し、1泊当たりの上限の範囲内で、割引を適用するコードを書くことができず、お支払額を算出できないでいます。 ### 該当のソースコード GO TO TRAVELいくら割引されるの? 旅行代金合計と泊数入力してください 単価: 円 泊数: 1 2 3 4 5 6 7 泊 通常の旅行代金: 円 割引額: 円 お支払旅行代金: 円 計算 リセット ### 試したこと javascriptでトライしたのですが(もともと浅薄な知識)、 第一次的に通常の旅行代金までは語.付けたのですが、割引額の算出と最終的にお客様が支払う金額をフォームに表示するに至りませんでした。 ### 補足情報(FW/ツールのバージョンなど) 1.先ず、通常の旅行代金を算出 2.通常代金の半額を算出 3.半額代金が1泊当たり20000円の上限以内であれば半額のお支払となり、 上限を超える湯であれば、半額ではなく20000円X泊数分の割引となります。 分かりにくい文章で真位恐縮ですがご教示のほどよろしくお願いします。
回答: >旅行代金の半額に対し、1泊当たりの上限の範囲内で、割引を適用するコード `Math.min()`を使うといいかと思います。 > > Math.min() 静的関数は、引数に渡される最小の値...を返します。 > > Math.min() - JavaScript | MDN > > > >1泊2日 旅行代金50,000円の場合、半額は25,000円ですが、上限が20000円なので旅行代金の支払額は30,000円 ``` 50000 - Math.min( 50000 * 0.5, 20000 * 1 ) //30000 ``` >2泊3日 旅行代金50,000円の場合、半額は25,000円、上限が20000円X2泊=40,000円なので、旅行代金の支払額は25,000円 ``` 50000 - Math.min( 50000 * 0.5, 20000 * 2 ) //25000 ```