- 好好學Java:從零基礎到項目實戰
- 歐陽燊
- 645字
- 2022-07-27 19:14:52
2.3.1 取整函數
雖然Java提供了基礎的加減乘除符號,但是數學上還有其他運算符號,包括四舍五入用到的約等號“≈”、求絕對值的“| |”、開平方的“”,這些運算符形態各異,而且并非ASCII碼的基本字符,也就意味著它們無法原樣搬到Java來。為此,Java的設計師封裝了一套數學函數庫Math,把加減乘除以外的常見數學運算都納入在內,然后作為Math庫的函數方法提供給程序員調用。比如四舍五入變成了Math庫的round方法,取絕對值變成了Math庫的abs方法,Math庫另外提供了取整方法floor和ceil。其中,floor方法指的是將變量往下取整,也就是往數值小的方向取整;ceil方法指的是將變量往上取整,也就是往數值大的方向取整。
需要注意的是,如果變量值為負數(假設x=-9.9),那么對x做floor取整將得到-10,對x做ceil取整將得到-9,這種情況與常人理解的正數取整并不相同。假設變量值為正數(如x=9.9),則對x做floor向下取整將得到9,對x做ceil向上取整將得到10。負數的取整結果看似有悖常理,其實完全沒有毛病,因為floor方法取的是數值更小的整數,而ceil方法取的是數值更大的整數。既然-10<-9.9<-9,于是floor取整得到了數值更小的-10,而ceil取整得到了數值更大的-9。若想眼見為實,則可運行下面的測試代碼加以驗證(完整代碼見本章源碼的src\com\arithmetic\math\Trunc.java):
double decimalPositive=9.9; //準備演示對正數四舍五入 long roundPositive=Math.round(decimalPositive); //四舍五入 System.out.println("roundPositive=" + roundPositive); double floorPositive=Math.floor(decimalPositive); //往下取整,也就是往數值小的方向取整 System.out.println("floorPositive=" + floorPositive); double ceilPositive=Math.ceil(decimalPositive); //往上取整,也就是往數值大的方向取整 System.out.println("ceilPositive=" + ceilPositive); double decimalNegative=-9.9; //準備演示對負數四舍五入 long roundNegative=Math.round(decimalNegative); //四舍五入 System.out.println("roundNegative=" + roundNegative); double floorNegative=Math.floor(decimalNegative); //往下取整,也就是往數值小的方向取整 System.out.println("floorNegative=" + floorNegative); double ceilNegative=Math.ceil(decimalNegative); //往上取整,也就是往數值大的方向取整 System.out.println("ceilNegative=" + ceilNegative); double absoluteValue=Math.abs(decimalNegative); //取絕對值 System.out.println("absoluteValue=" + absoluteValue);
推薦閱讀
- 新編Visual Basic程序設計上機實驗教程
- TypeScript Blueprints
- JavaScript:Functional Programming for JavaScript Developers
- RTC程序設計:實時音視頻權威指南
- Instant QlikView 11 Application Development
- STM32F0實戰:基于HAL庫開發
- MATLAB定量決策五大類問題
- Python編程實戰
- 零基礎趣學C語言
- 新印象:解構UI界面設計
- 從Power BI到Analysis Services:企業級數據分析實戰
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Clojure編程樂趣
- Practical Time Series Analysis
- Java從入門到精通(微視頻精編版)