代码之家  ›  专栏  ›  技术社区  ›  Harry Lincoln

js[closed]中3笔付款的舍入、小数位数和拆分变量

  •  0
  • Harry Lincoln  · 技术社区  · 11 年前

    试图理解一些JavaScript Math 函数,并将输出作为字符串正确处理。

    对于“三次分期付款”功能,我需要以下内容:

    1. 将价格分成3(a/b/c)
    2. 将它们设置为两位小数
    3. 向下舍入b和c
    4. 添加b&c到a,因为a需要最高的价格,然后b&c相等。
    5. 将a输入div类Instal1

    这是代码(都是在变量中完成的),这能奏效吗?jsfiddle结果窗口中没有显示任何内容。。。

    http://jsfiddle.net/hslincoln/8e5Vr/17/

    $(document).ready(function () {
    
    var handyTotal = jQuery(".price").text().replace(/\u00A3/g, '');
    
    var aPrice = handyTotal / 3; // takes basket total & /3
    var aPrice2dec = aPrice.toFixed(2); // converts to number with 2 decimal places
    var bPrice = handyTotal / 3;
    var bPrice2dec = bPrice.toFixed(2);
    var cPrice = handyTotal / 3;
    var cPrice2dec = cPrice.toFixed(2);
    
    var bPriceFloored = Math.floor(bPrice2dec); // rounds down number 
    var cPriceFloored = Math.floor(cPrice2dec);
    var overflowbPrice = bPrice2dec - bPriceFloored; // finds amount to add to a
    var overflowcPrice = cPrice2dec - cPriceFloored;
    var calcaPrice = $(".Instal1").text(aPrice2dec + overflowbPrice + overflowcPrice); // adds b+c to a
    });
    
    3 回复  |  直到 11 年前
        1
  •  1
  •   marekful    11 年前

    您有简单的引用错误:

    bPricedec cPricedec 未定义。将它们固定到 bPrice2dec cPrice2dec 分别地

    始终关注JavaScript控制台以获取错误报告;)

        2
  •  0
  •   Doğuş Yıldız    11 年前

    您在3个地方输入了错误的变量。 错误键入的变量有:bPricedec和cPricedec

        3
  •  0
  •   Harry Lincoln    11 年前

    通过上面的一些技巧和帮助,以下是答案:

    http://jsfiddle.net/hslincoln/8e5Vr/36/

    jQuery(document).ready(function () {
    
    var handyTotal = jQuery(".price").text().replace(/\u00A3/g, '');
    
    var aPrice = handyTotal / 3; // takes basket total & /3
    var aPrice2dec = parseFloat(aPrice.toFixed(3)); // converts to number with 3 decimal places
    var bPrice = handyTotal / 3;
    var bPrice2dec = parseFloat(bPrice.toFixed(3));
    var cPrice = handyTotal / 3;
    var cPrice2dec = parseFloat(cPrice.toFixed(3));  
    
    var bPriceFloored = Math.floor(bPrice2dec); // rounds down number 
    var cPriceFloored = Math.floor(cPrice2dec);
    var overflowbPrice = bPrice2dec - bPriceFloored; // finds amount to add to a
    var overflowcPrice = cPrice2dec - cPriceFloored;
    var calcaPrice = jQuery(".Instal1").text((parseFloat(aPrice2dec) + parseFloat(overflowbPrice) + parseFloat(overflowcPrice)).toFixed(2)); // adds b+c to a
    
    var bPriceFlooredDiv = jQuery(".Instal2").text(Math.floor(bPrice2dec));
    var cPriceFlooredDiv = jQuery(".Instal3").text(Math.floor(cPrice2dec));
    

    谢谢大家!