Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
前缀符号字符串计算器Javascript问题_Javascript_Algorithm_Prefix Operator - Fatal编程技术网

前缀符号字符串计算器Javascript问题

前缀符号字符串计算器Javascript问题,javascript,algorithm,prefix-operator,Javascript,Algorithm,Prefix Operator,我正在为前缀符号字符串制作一个计算器,它涵盖了我添加到其中的所有常规测试。但我遇到了一个问题,它似乎没有得到正确的答案,我不确定为什么它似乎有这个问题 我认为这可能与数字的除法和减法有关,因为问题的另一个方面是我需要假设所有输入都是有效的,这样就不会有负数,也不会有格式不正确的输入 这是我输入的代码和一些测试问题 "+ / * 1 3 + 12 16 * 10 4" = 40.107142857142854 "+ * / - 5 3 / 1 3 + 2 2 / 3

我正在为前缀符号字符串制作一个计算器,它涵盖了我添加到其中的所有常规测试。但我遇到了一个问题,它似乎没有得到正确的答案,我不确定为什么它似乎有这个问题

我认为这可能与数字的除法和减法有关,因为问题的另一个方面是我需要假设所有输入都是有效的,这样就不会有负数,也不会有格式不正确的输入

这是我输入的代码和一些测试问题

"+ / * 1 3 + 12 16 * 10 4" = 40.107142857142854
"+ * / - 5 3 / 1 3 + 2 2 / 3 * + 12 16 * 10 4" = 24.00267857142857 --- This is the one it doesn't like
"/ 300000 * + 12 16 * 10 40"= 26.785714285714285
函数前缀(表达式){
let temp=表达式拆分(“”)
设expr=temp.reverse()
让堆栈=[]
for(设i=0;i
您正在使用
parseInt
并将
2
除以
0
,从而产生
无穷大。要解决

变,

let temp = checkOperator(parseInt(j), parseInt(k), expr[i])


这将为您提供预期的答案

您正在使用
parseInt
并将
2
除以
0
,从而产生
无穷大
。要解决

变,

let temp = checkOperator(parseInt(j), parseInt(k), expr[i])

这是给你期望的答案

let temp = checkOperator(parseFloat(j), parseFloat(k), expr[i])