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 回答