【问题标题】:calculate % change in javascript计算 javascript 中的百分比变化
【发布时间】:2015-09-07 04:08:43
【问题描述】:
var current = 12000;
var june = 14600;
var may = 11200;

我想要关于“当前”月份参数的百分比变化。输出应该是百分比,它可以增加或减少 w.r.t.当前月份。如何做到这一点?

【问题讨论】:

    标签: javascript math percentage


    【解决方案1】:

    请注意,如果您的值之一是 0,您将获得 -100% 或 Infinity%。 这解决了这个问题:

       function percIncrease(a, b) {
            let percent;
            if(b !== 0) {
                if(a !== 0) {
                    percent = (b - a) / a * 100;
                } else {
                    percent = b * 100;
                }
            } else {
                percent = - a * 100;            
            }       
            return Math.floor(percent);
        }
    

    【讨论】:

    • 这应该是公认的答案,因为它处理边缘情况。
    • 你为什么在里面有Math.floor
    【解决方案2】:

    简单的数学运算:

    var res=(current-june)/current*100.0;
    

    【讨论】:

    • 我认为这是倒退。它给出了当前值与六月相比的百分比变化,而不是相反。
    • @torazaburo:同意,如果和current比较的话,应该是res=(x-curr)/curr,这样当x > curr,那么res > 0。
    【解决方案3】:
    var percentchange = (june - current) / current * 100.0;
    

    如果你的答案是负数,那么这是百分比增加,否则减少。

    【讨论】:

    【解决方案4】:

    处理特殊情况、增减、四舍五入、超过100%等都不是一件容易的事。

    function calcPc(n1,n2){
      return (((n2 - n1) / n1 * 100).toLocaleString('fullwide', {maximumFractionDigits:3}) + "%");
    }
       
       
       console.log(
       
         " May: "   , calcPc(11200,12000) ,
         "\nJune:" ,  calcPc(14600,12000)
       
       )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 2019-01-26
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2019-04-03
      相关资源
      最近更新 更多