【问题标题】:i need help on finding the minimum number of我需要帮助才能找到最少的
【发布时间】:2012-01-18 22:46:04
【问题描述】:

我试图弄清楚如何显示运送订单所需的每个盒子的最小数量。我已经完成了大部分工作,但似乎仍然无法完成程序。这是我到目前为止在 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);

}

【问题讨论】:

  • 您面临的问题/疑问是什么?什么不工作?
  • 你在用最后一块 jQuery 对象做什么? $("cave") 正在尝试选择所有 <cave> 元素,这似乎不对。对于其他人也是如此。此外,jQuery 对象没有 value 属性。不过有一个val() 方法。正如 Pekka 所问的,什么不是特别有效?给我们更多的背景信息。

标签: javascript jquery calc


【解决方案1】:

您正在设置像 var cave = dvds / 24; 这样的变量,但是稍后在函数中,您使用像 cave = parseInt($("cave").value); 这样的值覆盖这些变量 - 我猜您正在尝试做的是隐藏当前存储在cave 变量转换为整数,但是通过使用 jQuery 代码 $("cave").value 您的代码实际上所做的是尝试选择一个带有标签名称“cave”的元素,即 <cave> 并获取它的值,然后传递它值为parseInt

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

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

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

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

另外,我不知道您为什么要在函数的开头使用parseFloat() - 能够订购少量 DVD 是没有意义的。除了当前缺少的仅正数验证之外,您还需要检查是否输入了整数。

此外,您对“minis”的最终计算是对 1 进行毫无意义的除法:在那个阶段,您知道 minis = dvds 没有剩余 dvd,因此您也不需要在下一行进行无意义的模运算。

如果您应用上述更改并摆脱 parseInt() 的东西,您应该更接近您的目标:尝试一下并尝试一下,如果仍然不起作用,请回复我们。

【讨论】:

    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多