Javascript 舍入十进制值,如果十进制值大于或等于 25,则四舍五入值加一个其他明智值保持原样
Javascript roundup decimal values if decimal value is greater than or equal to 25 then round up value by plus one other wise remain as it is
我想在 JavaScript 中四舍五入一个十进制值。我需要如下功能:
如果十进制值大于或等于 25,那么我想将一个值四舍五入加一。
eg. if value = 5.56789 then new value should be 6
我知道使用条件是可能的。
我已经完成了使用如下所示的if条件:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display the fixed number.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var num = 5.24389;
var n = num.toFixed(2)
var num_arr = n.split('.');
var newval = num_arr[0];
if(num_arr[1] >= 25)
{
newval++;
}
document.getElementById("demo").innerHTML = newval;
}
</script>
</body>
</html>
但我不想使用任何条件。
那么有没有像我的例子一样的JavaScript函数呢?
任何帮助将不胜感激!!
所以这里的问题是你如何移动舍入点,使其.25
而不是.50
。基本思想是您需要减去 .25 并向四舍五入到最接近的整数。
如果我们处理两个十进制最大值,这很简单,我们减去.24
并使用 ceil()
.
function roundUpOverQuarter(num) {
return Math.ceil(num - .24);
}
console.log("1", roundUpOverQuarter(1));
console.log("1.24", roundUpOverQuarter(1.24));
console.log("1.25", roundUpOverQuarter(1.25));
console.log("1.5", roundUpOverQuarter(1.5));
现在上面的代码使用"货币"值,只有两位小数。要处理大于两位小数,它需要更多的数学运算。您需要首先将其切成两位小数,方法是将数字向上移动两个,将其下移,以降低小数,然后将数字移回,以便我们可以遵循与上面相同的过程。
function roundUpOverQuarter(num) {
num = Math.floor((num*100))/100;
return Math.ceil(num - .24);
}
console.log("1", roundUpOverQuarter(1));
console.log("1.24", roundUpOverQuarter(1.24));
console.log("1.25", roundUpOverQuarter(1.25));
console.log("1.5", roundUpOverQuarter(1.5));
console.log("1.24999", roundUpOverQuarter(1.24999)); //would fail with the first solution
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何“;过滤器”;或者以其他方式重构该数据
- java脚本在Chrome和其他浏览器中对LocaleTimeString的不同行为
- Javascript 舍入十进制值,如果十进制值大于或等于 25,则四舍五入值加一个其他明智值保持原样