我需要帮助才能找到最小数量的

时间:2011-12-13 00:19:39

标签: javascript jquery calc

我试图弄清楚如何显示发运订单所需的每个盒子的最小数量。我完成了大部分工作,但似乎仍然无法完成该计划。这是我到目前为止在js中所拥有的:

var calculate_boxes = function() {

    var dvds = parseFloat($("dvds").value);

    //Be sure the value entered is a positive number.

    var cave =  dvds / 24;
    dvds = dvds % 24;    

    var bakers =  dvds / 13;
    dvds = dvds % 13;   

    var dimes =  dvds / 10;
    dvds = dvds % 10;

    var quads =  dvds / 10;
    dvds = dvds % 10;

    var twins = dvds / 4;
    dvds = dvds % 4;

    var minis = dvds / 1;
    dvds = dvds % 1;    

        cave   = parseInt($("cave").value);
    bakers  = parseInt($("bakers").value);
    dimes   = parseInt($("dimes").value);
    quads   = parseInt($("quads").value);
    twins   = parseInt($("twins").value);
    minis   = parseInt($("minis").value);

}

1 个答案:

答案 0 :(得分:1)

你正在设置像var cave = dvds / 24;这样的变量,但是稍后在函数中你用cave = parseInt($("cave").value);这样的值覆盖那些变量 - 我猜你要做的是隐藏小数值当前存储在cave变量中的整数,但是通过使用jQuery代码$("cave").value,您的代码实际执行的操作是尝试选择标记名为“cave”的元素,即{{1}并获取其值,然后将该值传递给<cave>

在JavaScript中,您可以使用几种Math方法中的一种将小数转换为整数 - 使用哪种方法取决于您是要向上舍入,向下舍入还是舍入到最接近的整数。

出于当前目的,您始终要向下舍入,因此请使用Math.floor()。在函数结束时无需将其作为单独的操作,只需立即执行:

parseInt

另外,大概你的“四边形”应该除以4而你的“双胞胎”应该除以2。

另外,我不确定为什么你在功能开始时使用var cave = Math.floor(dvds / 24); dvds %= 24; // note that dvds %= 24 is equivalent to dvds = dvds % 24 var bakers = Math.floor(dvds / 13); dvds %= 13; // etc 开始 - 能够订购一小部分DVD是没有意义的。除了目前缺少正数的验证之外,您还需要检查是否输入了整数。

另外,你对“minis”的最终计算是1进行无意义的除法:在那个阶段,你知道parseFloat()没有dvd剩余,所以你不需要在下一行进行无意义的模运算

如果您应用上述更改并删除minis = dvds内容,则应该更接近您的目标:尝试一下并尝试一下,如果仍然无效,请回复我们。< / p>