此代码对基本Javascript数学函数有什么问题?

时间:2019-10-26 02:42:29

标签: javascript

我正在尝试编写可解决以下问题的代码:

内森(Nathan)喜欢骑自行车。

由于内森(Nathan)知道保持水分很重要,因此他每小时骑车要喝0.5升水。

您将获得以小时为单位的时间,并且需要返回Nathan将饮用的升数,四舍五入到最小值。

例如:

时间= 3 ---->升= 1

时间= 6.7 --->升= 3

时间= 11.8->升= 5

这是我的代码:

int k = 65;
for (int i = 0; i < SIZE; ++i)
    {
        cout << char(k) << " | ";
        ++k;


       for (int j = 0; j < SIZE; ++j)
        {

            cout << setw(2) << setfill('0') << array_2D[i][j] << "   "; 

            // array is size [10][10]
            // array was created in a separate function

        }
        cout << endl; 

    }
function litres(time) {
  var litrez = Math.round(time * 0.5);
  if (litrez === 1) {
    return "1 litre";
  }
  else {
    return litrez + " litres";
  }
}

提前谢谢! :)

3 个答案:

答案 0 :(得分:1)

Math.round()rounds to the nearest integer,而不是问题中所说的最小值。您可能需要Math.floor()

答案 1 :(得分:0)

要获取Integer中的值,可以使用Math.floorMath.ceil。在这种情况下,您可以Math.floorInteger中获得小于或等于的值。

https://www.w3schools.com/jsref/jsref_floor.asp

答案 2 :(得分:0)

就像Geno Chen所说,您需要使用Math.floor

function litres(time) {
  var litrez = Math.floor(time * 0.5);
  if (litrez === 1) {
    return "1 litre";
  }
  else {
    return litrez + " litres";
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="in"/>
<button onclick="$('#out').append(litres(Number($('#in').val())))"> Calculate</button>
<div id="out"></div>

Math.round()会向上或向下舍入到最接近的整数(整数)。如果数字的小数部分大于或等于.5,则将四舍五入;如果数字的小数部分不等于var window: UIWindow? let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let myTabBar = storyboard.instantiateViewController(withIdentifier: "happy") window?.rootViewController = myTabBar ,则将四舍五入。

Math.floor()将一个数字四舍五入为最接近的整数,该整数小于或等于其自身,或者如您所说的“取最小值”。

Math.ceil()将数字四舍五入到比其大的最接近的整数。