js的三大舍入函式(round(), ceil() ,floor())的對比
阿新 • • 發佈:2018-12-23
小數經常需要取整,在js給我們提供了三個舍入函式:round(), ceil() ,floor()。他們各自有各自的用途,在日常生活會和科學研究的資料中,經常就要進行四捨五入,這也是我們從小到大遇到最多的舍入取整方式,js的round()函式能滿足我們的要求,round的單詞本意就有整數的意思,這個也是很好理解的。ceil是天花板的意思,老外特別喜歡形象的表達,我們猜也能猜到,天花板肯定是舍入的時候將小數增加1,而作為地板floor肯定恰恰相反,記得高中數學就有這樣的表達取整用符號[],稱其為高斯函式。
- round():四捨五入
- ceil():向上取整
- floor():向下取整(高斯函式)
不過,他們各自都有什麼用呢?
round()
日常生活中用的最多,比如我們去商城購物,很多商品實際上都是有小數的,但是在付款的時候,經常店家會四捨五入,比如這樣的:
<script type="text/javascript"> function gro(){ var a=new Array(); a[0]=99;a[1]=1.49;a[2]=29;a[3]=69;a[4]=17; console.log("毛衣的價格:"+a[0]+"元"); console.log("辣條的價格:"+a[1]+"元"); console.log("洗髮露的價格:"+a[2]+"元"); console.log("T恤的價格:"+a[3]+"元"); console.log("毛筆的價格:"+a[4]+"元"); var sum=0; for(var i=0;i<5;i++){ sum+=a[i]; } //收錢 console.log("應付款:"+Math.round(sum)+"元"); } gro(); </script>
結果:
毛衣的價格:99元
辣條的價格:1.49元
洗髮露的價格:29元
T恤的價格:69元
毛筆的價格:17元
26 應付款:215元
ceil()
但是有的時候商家很摳門,不會給你舍掉那幾毛錢,反而讓你多付幾毛錢:
<script type="text/javascript"> function cei(){ var a=new Array(); a[0]=99;a[1]=1.49;a[2]=29;a[3]=69;a[4]=17; console.log("毛衣的價格:"+a[0]+"元"); console.log("辣條的價格:"+a[1]+"元"); console.log("洗髮露的價格:"+a[2]+"元"); console.log("T恤的價格:"+a[3]+"元"); console.log("毛筆的價格:"+a[4]+"元"); var sum=0; for(var i=0;i<5;i++){ sum+=a[i]; } //收錢 console.log("應付款:"+Math.ceil(sum)+"元"); } cei(); </script>
結果:
毛衣的價格:99元
辣條的價格:1.49元
洗髮露的價格:29元
T恤的價格:69元
毛筆的價格:17元
26 應付款:216元
floor()
當然,有的時候商家會很會做生意,給你捨去那幾毛錢,既不像第一個那樣機械,也不會那樣想第2個那樣小氣。
<script type="text/javascript">
function flo(){
var a=new Array();
a[0]=99;a[1]=1.49;a[2]=29;a[3]=69;a[4]=17;
console.log("毛衣的價格:"+a[0]+"元");
console.log("辣條的價格:"+a[1]+"元");
console.log("洗髮露的價格:"+a[2]+"元");
console.log("T恤的價格:"+a[3]+"元");
console.log("毛筆的價格:"+a[4]+"元");
var sum=0;
for(var i=0;i<5;i++){
sum+=a[i];
}
//收錢
console.log("應付款:"+Math.floor(sum)+"元");
}
flo();
</script>
結果:
毛衣的價格:99元
辣條的價格:1.49元
洗髮露的價格:29元
T恤的價格:69元
毛筆的價格:17元
26 應付款:215元
在實際應用中那三個取整函式,不僅僅只侷限於這些生活上的算術問題,實際上是的用法多種多樣,比如我們隨機抽整數,雖然能利用random得到隨機小數,但是我們有的時候也需要整數,這是就需要根據實際需求進行取整。