Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
Excel电子表格公式到javascript问题#2_Javascript_Excel_Excel 2007_Excel Formula - Fatal编程技术网

Excel电子表格公式到javascript问题#2

Excel电子表格公式到javascript问题#2,javascript,excel,excel-2007,excel-formula,Javascript,Excel,Excel 2007,Excel Formula,大家好。然而,在Excel电子表格到JavaScript的转换过程中,我仍然遇到一些问题,无法正确匹配 以下是excel公式: =IF(IF($B$7=TRUE,$B$28/$B$10,$B$28/$B$5)>1,1,IF($B$7=TRUE,$B$28/$B$10,$B$28/$B$5)) WHERE B7 = TRUE B28 = 76800 B10 = 892015 B5 = 999500 这是我迄今为止的JavaScript: function percent

大家好。然而,在Excel电子表格到JavaScript的转换过程中,我仍然遇到一些问题,无法正确匹配

以下是excel公式:

 =IF(IF($B$7=TRUE,$B$28/$B$10,$B$28/$B$5)>1,1,IF($B$7=TRUE,$B$28/$B$10,$B$28/$B$5))

 WHERE
 B7  = TRUE
 B28 = 76800
 B10 = 892015
 B5  = 999500
这是我迄今为止的JavaScript:

 function percent(x) { return Math.round((x-0)*100) + '%'; }

 if($('#section179').is(':checked'))
 {
  var percentRepaid = $("#rev3DScanYear").val() / $("#section179Real").val();

  if (percentRepaid > 1)
  {   
    $("#paymentCashPer").val('100.00');
  }else
  {
    percentRepaid = $("#rev3DScanYear").val() / $("#SalePrice").val();
    $("#paymentCashPer").val(percent(percentRepaid));
  }
}else
{
 //to be done   
}

 WHERE
 rev3DScanYear  = 76800
 SalePrice      = 999500
 section179Real = 892015
对于JavaScript代码,我一直得到8%的值,我应该得到8.61%的值,就像它在电子表格上一样

和往常一样,任何帮助都会很好o)

David

数学。舍入((x-0)*100)使
x
成为一个整数

您可以尝试
Math.round(((x-0)*100)*100)/100
,它将
x=8.609720…
转换为
x=861
,然后将其除以,得到您正在寻找的
x=8.61
,这就是他们的建议


…还有,我不太清楚为什么要从x中减去0…?

好的,所以我又看了一遍,我想我第一次看得不够深入

如果我理解的话,逻辑是:

If Section179 is checked then Divisor is Section179Real, else it is SalePrice.

Give me the smaller of 1.00 or (rev3DScanYear / Divisor).
如果这是正确的,您可以在excel中使用
=MIN(1,$B28/If($B$7=TRUE,$B$10,$B$5))
(相同的引用),这意味着以下操作应该按照您的要求执行:

var Divisor = $("#SalePrice");

if($('#section179').is(':checked'))
{
  Divisor = $("#section179Real");
}

$("#paymentCashPer").val(Math.round(100*(Math.min(1, $("#rev3DScanYear")/Divisor)*100)/100;

科尔德诺思:当我尝试这样做的时候,我得到了7.68分。我遗漏了什么?由于某种原因,我的TI-84 76800/999500=0.08,但当我在javascript 768000/999500中做同样的事情时,它=0.768384192096048???76800/999500=7.68%,76800/892015=8.61%;你把它除以售价,而不是真的。