Javascript数组中的浮点值出现意外结果

Javascript数组中的浮点值出现意外结果,javascript,Javascript,预期回报如下所示: 支票现金登记簿3.26100.00、[[PENNY,1.01]、[NICKEL,2.05]、[DIME,3.10]、[QUARTER,4.25]、[ONE,90.00]、[FIVE,55.00]、[TEN,20.00]、[TWENTY,60.00]、[Theen,20.00]、[FIVE,15.00]、[ONE,1.00]、[QUARTER,0.50]、[DIME,0.20]、[PENNY,0.04] 当我在控制台中查看输出时,它似乎与预期的输出相同,但我不知道它失败的原因。

预期回报如下所示:

支票现金登记簿3.26100.00、[[PENNY,1.01]、[NICKEL,2.05]、[DIME,3.10]、[QUARTER,4.25]、[ONE,90.00]、[FIVE,55.00]、[TEN,20.00]、[TWENTY,60.00]、[Theen,20.00]、[FIVE,15.00]、[ONE,1.00]、[QUARTER,0.50]、[DIME,0.20]、[PENNY,0.04]


当我在控制台中查看输出时,它似乎与预期的输出相同,但我不知道它失败的原因。我将感谢你的帮助。以下是指向我的代码的链接:

功能检查现金登记价格、现金、cid{ var变化; //这是找你的钱,女士。 变化=资金不足; 改变=关闭; var typeObj={便士:0.01,镍:0.05,一角硬币:0.10,四分之一:0.25,一:1,五:5,十:10,二十:20,一百:100}; var changeArr=[[便士,0],[镍,0],[一角,0],[四分之一,0],[一,0],[五,0],[十,0],[二十,0],[一百,0]; var diff=现金价格; var总计=cid.还原功能ACC,val{ //控制台。logacc、acc、val、val; 返回数学roundacc+val[1]*100/100; },0; //控制台。logtotal,total; ifdiff>total 返还资金不足; 否则ifdiff==总计 返回关闭; cid,倒车,前车,i{ var key=arr[1]; var curr=typeObj[arr[0]]; var总和=0; diff=数学圆diff*100/100; 控制台.logcurr,curr,key,key,diff,diff,diff/curr,diff/curr; //控制台.logchangeArr[changeArr.length-1-i][1],changeArr[changeArr.length-1-i][1]; whilekey>=curr和&diff/curr>=1{ diff=数学圆diff*100/100; console.loginside,curr,curr,key,key,diff,diff/curr,diff/curr;sum+=curr; changeArr[changeArr.length-1-i][1]=总和/100*100; 键-=当前值; ifdiff>=curr diff-=curr; } }; 控制台。logchangeArr,changeArr; changeArr=changeArr.filterfunctionarr{ 返回arr[1]!==0; }; console.logchangeArr; ifdiff==0 退货单; console.log--; 返还资金不足; } //抽屉中现金阵列示例: //[PENNY,1.01], //[镍,2.05], //[一角硬币,3.10], //[第四季,4.25], //[1,90.00],, //[5,55.00],, //[10,20.00],, //[20,60.00],, //[100100.00]]
支票现金登记簿3.26100.00,[[便士,1.01],[镍币,2.05],[一角,3.10],[四分之一,4.25],[一,90.00],[五,55.00],[十,20.00],[二十,60.00],[一百,100.00] 测试失败只是因为数组顺序相反。因此,我所要做的就是使用array.reverse,问题就解决了。

我试图修复问题格式,使其可读,但我就是做不到。我不完全确定你的问题是什么,但如果你得到一个完全不同的数据结构,它不可能是浮点数学问题。当我在控制台中查看输出时,它似乎与预期的输出相同,但我不知道它失败的原因。-如果输出与预期输出相同……您认为它为什么会失败?@阿尔瓦罗冈萨雷斯对不起,这是stackoverflow中的一个新功能,问题已经解决了没有问题