2

我已经实现了分流场算法(使用来自维基百科的代码,修改为使用 stl 堆栈/队列),但现在我想知道它将如何评估我从除法中得到的小数。scriptasylum.com 上的 javascript 应用程序(无法链接)工作得很好,并给出了预期的输出:

Infix: 1/6*((1/4)/(1/2)+1/2)
Postfix: 16/14/12//12/+*
Eval: 0.16666666666666666 (1/6)

Infix: 0.5+1
Postfix: 0.51+
Eval: 1.5

我在这里找到了一个后缀评估的例子,但它没有完成并且没有考虑小数点。

这是我当前的代码:http ://codepad.org/zDXnOELK

4

1 回答 1

2

简单的事情(这是 Javascript impl 正在做的,凭借语言语义)是在内部将所有数字表示为double.

如果你想做一些更聪明的事情,我得警告你,它需要更多的代码更难的设计决策,我建议你从阅读Scheme numeric tower开始。

于 2010-11-17T06:30:03.150 回答