将XLS转换为javascript舍入错误

时间:2014-06-09 19:16:27

标签: javascript rounding-error parsefloat

我正在尝试将XLS电子表格转换为基于Javascript的网页。 我很确定我遇到了一些舍入错误。 我得到"细胞的价值"然后构建函数,然后使用这些函数的结果来构建其他函数。我知道有一些冗余,比如" o11 = b5"但我这样做了 更密切地复制XLS文件并使其更容易转换。

我对解决方案有哪些选择?

  var e17=parseFloat( $("#k_rcr").val())/100 ;
  var w16=parseFloat($("#k_nobt").val());
  var m12=e17*w16;
  var b5=parseFloat($("#k_nobt").val());
  var b6=parseFloat($("#k_asbw").val());
  var b7=parseFloat($("#k_spdb").val());
  var b8=parseFloat($("#k_ur").val())/100;
  var b9=parseFloat($("#k_bplm").val());
  var b11=b6/b7;
  var b12=b11*b8;
  var b13=b12*(b9*(52/12));
  var e5=parseFloat($("#k_dps").val());
  var b14=b13/e5;
  var m13=b14;
  var e6=parseFloat($("#k_fr").val())/100;
  var m14=m13*e6;
  var e18=parseFloat($("#k_alsr").val())/100;
  var e8=parseFloat($("#k_ba").val());
  var e9=parseFloat($("#k_pwm").val())/100;
  var m15=e18*e8*(1-e9); 
  var m16=m15*m14;
  var m17=m16*m12; 
  var e12=e8*(1-e9);
  var m18=(b5*m14*e12)-m17;
  var m19=parseFloat($("#k_wpv").val()); 
  var m20=m18*m19; 
  var o11=b5;
  var o13=b14;
  var o14=m14; 
  var o18=b5*o14*e12;
  var b17=parseFloat($("#k_wpv").val());
  var o19=b17;
  var o20=o18*o19;
  var o21=o20-m20; 
  var w12=0;
  var b20=parseFloat($("#k_tcpwp").val());
  var b21=parseFloat($("#k_vpwp").val());
  var w13=b20*m17;
  var w14=b21*m17;
  var w15=w12+w13+w14;
  var w16=b5;
  var w17=200;
  var w18=5;
  var w19=(w17*w16)+(w18*w16);
  var u15=0;
  var u19=0;
  var w20=(w15+w19)-(u15+u19); 
  var u25=0;
  var w25=0;
  var w26=u25-w25;
  var o29=w26; 
  var o21=o20-m20; 
  var m25=0;
  var o25=0; 
  var o26=m25-o25;
  var s29=w20;
  var q29=o26;
  var m29=o21;
  var k29=(m29+o29)-(q29+s29);


  $("#k_nibg").html( formatMoney( k29 ) );
  $("#k_bc").html( (m29/s29).toFixed(2) );

1 个答案:

答案 0 :(得分:0)

事实证明,Excel的舍入方式与预期不同。 如果我在Excel中将单元格强制为4位小数,则它与我的网络版本完全匹配。