java如何將一個float型數(shù)的整數(shù)部分和小數(shù)分別輸出顯示
將一個float型數(shù)的整數(shù)部分和小數(shù)分別輸出顯示
三種方法
方一:直接類型轉(zhuǎn)換,再加減,問題是類型轉(zhuǎn)換導(dǎo)致的小數(shù)位數(shù)精確度變化,目前沒找到解決方法
方二:轉(zhuǎn)換成字符串后運用.split方法直接從小數(shù)點處切分
方三:轉(zhuǎn)換成字符串后,標(biāo)記小數(shù)點位置后,用substring方法分別構(gòu)造兩個子字符串
注意點:
- 負(fù)數(shù)取整,例 -1.2 的整數(shù)部分是 -2,小數(shù)部分是0.8
//三種方法 //負(fù)數(shù)和正數(shù)的整數(shù)情況需要分開考慮 import java.util.*; public class Split { public static void main(String[] args) { float num,b; int a,pointIndex; Scanner s = new Scanner(System.in); System.out.println("請輸入一個float數(shù):"); num = s.nextFloat(); // 判斷正負(fù) if(num >=0) { // 正數(shù)部分計算 // 方法一:直接轉(zhuǎn)換數(shù)字類型后加減,問題是轉(zhuǎn)換類型會導(dǎo)致小數(shù)部分變化,不知道怎么解決??! a = (int) num; b = num - a; System.out.println(num + "整數(shù)部分:" + a); System.out.println(num + "小數(shù)部分:" + b); // 方法二:轉(zhuǎn)換成字符串,用方法split按小數(shù)點前后分割 String str = String.valueOf(num); //將float類型轉(zhuǎn)換成字符串 String[] ary = str.split("\\."); System.out.println(num + "整數(shù)部分為:" + ary[0]); System.out.println(num + "小數(shù)部分為:" + "0." + ary[1]); // 方法三:同樣轉(zhuǎn)換成字符串,用方法indexOf標(biāo)記小數(shù)點位置 pointIndex = str.indexOf('.'); System.out.println(num + "的整數(shù)部分為:" + str.substring(0,pointIndex)); System.out.println(num + "的小數(shù)部分為:" + "0" + str.substring(pointIndex,str.length())); } // 負(fù)數(shù)部分計算,注意,-1.7的正數(shù)部分是-2,小數(shù)部分是0.3 else { // 方一 a = (int) num - 1; b = num - a; System.out.println(num + "整數(shù)部分:" + a); System.out.println(num + "小數(shù)部分:" + b); // 方二 String str = String.valueOf(num); //將float類型轉(zhuǎn)換成字符串 String[] ary = str.split("\\."); a = Integer.parseInt(ary[0]) -1; b = 1 - Float.parseFloat("0." + ary[1]); //需要計算,再次轉(zhuǎn)換成float類型 System.out.println(num + "整數(shù)部分為:" + a); System.out.println(num + "小數(shù)部分為:" + b); // 方三 pointIndex = str.indexOf('.'); a = Integer.parseInt(str.substring(0,pointIndex)) -1; b = 1 - Float.parseFloat("0" + str.substring(pointIndex)); System.out.println(num + "的整數(shù)部分為:" + a); System.out.println(num + "的小數(shù)部分為:" + b); } } }
這一題非常適合后面做按鈕練習(xí)
java. float 取整
- 向上取整:
Math.ceil() //只要有小數(shù)都+1
- 向下取整:
Math.floor() //不取小數(shù)
- 四舍五入:
Math.round() //四舍五入
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中的@ConditionalOnProperty作用和用法詳解
這篇文章主要介紹了Spring中的@ConditionalOnProperty作用和用法詳解,在spring boot中有時候需要控制配置類是否生效,可以使用@ConditionalOnProperty注解來控制@Configuration是否生效,需要的朋友可以參考下2023-11-11Idea 2020.2 創(chuàng)建web、Spring項目的教程圖解
這篇文章主要介紹了Idea 2020.2 創(chuàng)建web、Spring項目的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08手工體驗smtp和pop3協(xié)議 郵件實現(xiàn)詳解(二)
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下2017-10-10java注釋轉(zhuǎn)json插件開發(fā)實戰(zhàn)詳解
這篇文章主要為大家介紹了java注釋轉(zhuǎn)json插件開發(fā)實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06