消費税を計算する関数を設計しようとしています。したがって、販売価格と税率を小数または分数として消費し、最終価格を生成します。したがって、20 と 105 パーセント (1.05) を与えると、21 になります。
(定義 (販売 ab) (* ab))
小数部は取れましたが、小数部はどうやって出すのでしょうか?
のように、20 と 5/100 を与えると、どうすれば 21 を計算できますか? 分数を認識するために必要です...これが意味をなす場合。
これはあなたが必要とするものですか?
(define (sales a b)
(if (exact? b)
(* a (add1 b))
(* a b)))
期待どおりに動作します:
(sales 20 1.05)
=> 21
(sales 20 5/100)
=> 21
分数を「認識する」必要はありません。すべての算術関数がすでにそれを行っています。
% racket
Welcome to Racket v5.3.1.
> (* 20 (+ 1 5/100))
21