0

消費税を計算する関数を設計しようとしています。したがって、販売価格と税率を小数または分数として消費し、最終価格を生成します。したがって、20 と 105 パーセント (1.05) を与えると、21 になります。

(定義 (販売 ab) (* ab))

小数部は取れましたが、小数部はどうやって出すのでしょうか?

のように、20 と 5/100 を与えると、どうすれば 21 を計算できますか? 分数を認識するために必要です...これが意味をなす場合。

4

2 に答える 2

2

これはあなたが必要とするものですか?

(define (sales a b)
  (if (exact? b)
      (* a (add1 b))
      (* a b)))

期待どおりに動作します:

(sales 20 1.05)
=> 21

(sales 20 5/100)
=> 21
于 2013-01-19T23:26:42.937 に答える
1

分数を「認識する」必要はありません。すべての算術関数がすでにそれを行っています。

% racket 
Welcome to Racket v5.3.1.
> (* 20 (+ 1 5/100))
21
于 2013-01-19T23:23:06.547 に答える