Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解
Math.round() “四舍五入”,
小數(shù)點(diǎn)后第一位<5
- 正數(shù):Math.round(11.46)=11
- 負(fù)數(shù):Math.round(-11.46)=-11
小數(shù)點(diǎn)后第一位>5
- 正數(shù):Math.round(11.68)=12
- 負(fù)數(shù):Math.round(-11.68)=-12
小數(shù)點(diǎn)后第一位=5
- 正數(shù):Math.round(11.5)=12
- 負(fù)數(shù):Math.round(-11.5)=-11
double d = 3.1415926; double d2 = 18.58; double d3 = -15.23; double d4 = -16.85; long round1 = Math.round(d); // 結(jié)果 3 long round2 = Math.round(d2); // 結(jié)果 19 long round3 = Math.round(d3); // 結(jié)果 -15 long round4 = Math.round(d4); // 結(jié)果 -17
Math.ceil() “向上取整”, 即小數(shù)部分直接舍去,并向正數(shù)部分進(jìn)1
double d = 3.1415926; double d2 = 18.58; double d3 = -15.23; double d4 = -16.85; double d5 = -16.5; double d6 = 16.5; double ceil1 = Math.ceil(d); // 結(jié)果 4.0 double ceil2 = Math.ceil(d2); // 結(jié)果 19.0 double ceil3 = Math.ceil(d3); // 結(jié)果 -15.0 double ceil4 = Math.ceil(d4); // 結(jié)果 -16.0 double ceil5 = Math.ceil(d5); // 結(jié)果 -16.0 double ceil6 = Math.ceil(d6); // 結(jié)果 17.0
【注】該數(shù)為小數(shù)時,小數(shù)部分直接舍去
Math.floor() “向下取整” ,即小數(shù)部分直接舍去
double d = 3.1415926; double d2 = 18.58; double d3 = -15.23; double d4 = -16.85; double d5 = -16.5; double d6 = 16.5; double floor1 = Math.floor(d); // 結(jié)果 3.0 double floor2 = Math.floor(d2); // 結(jié)果 18.0 double floor3 = Math.floor(d3); // 結(jié)果 -16.0 double floor4 = Math.floor(d4); // 結(jié)果 -17.0 double floor5 = Math.floor(d5); // 結(jié)果 -17.0 double floor6 = Math.floor(d6); // 結(jié)果 16.0
【注】 Math.floor()容易出現(xiàn)精度問題,舉個最簡單例子:
對小數(shù) 8.54 保留兩位小數(shù)(雖然它已經(jīng)保留了 2 位小數(shù)):
Math.floor(8.54*100)/100 // 輸出結(jié)果為 8.53, 注意是 8.53 而不是 8.54。
所以這種函數(shù)慎用。
到此這篇關(guān)于Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Math.round(),Math.ceil(),Math.floor()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
引入QQ郵箱發(fā)送驗(yàn)證碼進(jìn)行安全校驗(yàn)功能實(shí)現(xiàn)
最近遇到這樣的需求用戶輸入自己的郵箱,點(diǎn)擊獲取驗(yàn)證碼,后臺會發(fā)送一封郵件到對應(yīng)郵箱中,怎么實(shí)現(xiàn)呢?下面小編給大家?guī)砹艘隥Q郵箱發(fā)送驗(yàn)證碼進(jìn)行安全校驗(yàn)功能,需要的朋友可以參考下2023-02-02SpringBoot yml配置文件調(diào)用過程解析
這篇文章主要介紹了SpringBoot yml配置文件調(diào)用過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11Java判斷101-200之間有多少個素?cái)?shù)并輸出
這篇文章主要介紹了Java判斷101-200之間有多少個素?cái)?shù)并輸出,需要的朋友可以參考下2017-02-02Java靜態(tài)代碼塊加載驅(qū)動代碼實(shí)例
這篇文章主要介紹了Java靜態(tài)代碼塊加載驅(qū)動代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07Java中this,static,final,const用法詳解
這篇文章主要介紹了Java中this,static,final,const用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07SpringBoot2使用WebFlux函數(shù)式編程的方法
這篇文章主要介紹了SpringBoot2使用WebFlux函數(shù)式編程的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08SpringBoot的@EnableAsync和@Async注解分析
這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個快速開發(fā)框架,可以幫助開發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下2023-07-07java使用BeanUtils.copyProperties踩坑經(jīng)歷
最近在做個項(xiàng)目,踩了個坑特此記錄一下,本文主要介紹了使用BeanUtils.copyProperties踩坑經(jīng)歷,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05