条件程序 - 计算销售税的设计功能?

时间:2013-01-19 23:20:27

标签: scheme racket

我正在尝试设计一个计算销售税的功能。所以它会消耗销售价格以及税率百分比,小数或分数,它会产生最终价格。所以如果我给出20%和105%(1.05),我会得到21。

(定义(销售a b)   (* a b))

我得到了小数部分,但我怎么能得到它来做分数部分?

如果我给20和5/100,我将如何制作计算机21?我需要它来识别分数......如果这有意义的话。

2 个答案:

答案 0 :(得分:2)

这是你需要的吗?

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

按预期工作:

(sales 20 1.05)
=> 21

(sales 20 5/100)
=> 21

答案 1 :(得分:1)

您不必“识别”分数:所有算术函数都已经为您完成了。

% racket 
Welcome to Racket v5.3.1.
> (* 20 (+ 1 5/100))
21