【问题标题】:Excel spreadsheet formula to javascript question #2Excel 电子表格公式到 javascript 问题 #2
【发布时间】:2010-07-06 21:24:26
【问题描述】:

大家好。再次尝试在此 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)

大卫

【问题讨论】:

    标签: javascript excel excel-2007 excel-formula


    【解决方案1】:

    Math.round((x-0)*100) 使 x 成为整数。

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

    ...另外,不确定为什么要从 x...中减去 0?

    【讨论】:

    • Coldnorth:当我尝试这样做时,我得到了 7.68。我错过了什么??
    • 出于某种原因,我的 TI-84 76800/999500 = .08 但是当我在 javascript 768000/999500 中做同样的事情时它 = 0.768384192096048???
    • 76,800 / 999,500 = 7.68%,76,800 / 892,015 = 8.61%;您将其除以 SalePrice 而不是 section179Real。
    【解决方案2】:

    好的,所以我一直在看这个,我觉得我第一次看的不够深入。

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

    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;
    

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多