当前位置:  开发笔记 > 编程语言 > 正文

在Javascript中舍入负数

如何解决《在Javascript中舍入负数》经验,为你挑选了2个好方法。

我们在javascript中遇到了Math.round()的问题.问题是此函数不能正确舍入负数.例如 :

1.5~ = 2

0.5~ = 1

-0.5~ = 0 //错了

-1.5~ = -1 //错了

根据算术舍入,这是不正确的.-0.5的正确数字应为-1,-1.5应为-2.

有没有标准的方法,在Javascript中正确舍入负数?



1> Pranav C Bal..:

Math.round转换为正数后应用,最后回滚符号.在哪里可以使用Math.sign方法从数字中获取符号并Math.abs获得数字的绝对值.

console.log(
  Math.sign(num) * Math.round(Math.sign(num) * num),
  // or
  Math.sign(num) * Math.round(Math.abs(num))
)

var nums = [-0.5, 1.5, 3, 3.6, -4.8, -1.3];

nums.forEach(function(num) {
  console.log(
    Math.sign(num) * Math.round(Math.sign(num) * num),
    Math.sign(num) * Math.round(Math.abs(num))
  )
});


2> Nina Scholz..:

你可以在ES5中保存标志并稍后申请;

function round(v) {
    return (v >= 0 || -1) * Math.round(Math.abs(v));
}

console.log(round(1.5));  //  2
console.log(round(0.5));  //  1
console.log(round(-1.5)); // -2
console.log(round(-0.5)); // -1
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有