在javascript中使用parseInt进行整数舍入

Ern*_*ngs 10 javascript

我有以下javascript代码.

if( frequencyValue <= 30)
            leftVal = 1;
        else if (frequencyValue > 270)
            leftVal= 10;
        else 
            leftVal = parseInt(frequencyValue/30);
Run Code Online (Sandbox Code Playgroud)

目前,如果给出值55(例如),它将从1 <55/30 <2返回1.我想知道如果丢弃的小数位大于0.5,是否有一种方法可以舍入到2.

提前致谢

Che*_*try 33

使用parseFloat和Math.round的组合

Math.round(parseFloat("3.567")) //returns 4
Run Code Online (Sandbox Code Playgroud)

[编辑]根据您的代码示例,您根本不需要parseInt,因为您的参数已经是一个数字.所有你需要的是Math.round

  • 从痛苦的经历我总是建议传递可选的第二个参数强制它到十个基础:parseInt(myNum,10)否则你可以在尝试转换以0开始的字符串时调试疼痛的整个世界等抛出它全部进入六角模式等等,一个真正的头部伤害者......! (3认同)

cdm*_*002 6

leftVal = Math.floor(frequencyValue/30 + 0.5);
Run Code Online (Sandbox Code Playgroud)

  • 完全可以接受的技术.这是实现舍入的方式.从javadoc的Math.round:"结果通过添加1/2舍入为整数,取结果的底限,并将结果转换为int类型". (4认同)
  • 这看起来不错.Floor总是返回较低的值,这是提问者不想要的. (3认同)