2013-11-02 41 views
-1

例如,如果用戶輸入133.66666 它將返回133.666Java如何提取整數的最後一位然後顯示爲該小數位數? (更新)

155.88888888888 
=155.88888 

821.8765432 
=821.8 

代碼:

Scanner keys = new Scanner(System.in); 
double x = (int) keys.nextDouble(); 
double lastdigit=x%10; 

這是怎麼找到最後一位 但我如何使用位數字顯示小數點的數量?

對不起我不是足夠 用戶明確可以輸入他們想要的任何數量的(假設他們都是正) 然後我用整數X的最後一個數字顯示小數點 感謝球員的X量!

+2

這'133.66666'不是一個整數。另外,請查看'NumberFormat'。 –

+0

其實,如果用戶輸入'133.6666',它會返回'133.0'。 –

+0

@ZouZou是的,顯然他正試圖傳達別的東西。 –

回答

1

使用setMaximumFractionDigits設置沒有小數位

的嘗試

 BigDecimal bd = new BigDecimal(23.045345686); 
    int noOfDecimalPlaces= 5; 
    DecimalFormat df = new DecimalFormat(); 
    df.setMaximumFractionDigits(noOfDecimalPlaces); 
    System.out.println("bd value::"+ df.format(bd)); 
0

考慮155.88888888是double

double n = 155.888888888 
int num = n; // rounds down to 155 
String numString = String.valueOf(num); 
String last = numString.subString(
     numString.length() - 1, numString.length()); 
// should return 5 
int lastDigit = Integer.parseInt(last); 

// get new double 
String formatted = String.forat("%." + lastDigit + "f", n); 
double revisedN = Double.parseDouble(formatted); 

注:未經檢驗

如果你只是做155 % 10,你'd得到8;但如果它只有1位數字如5(5.8888),那麼你不能使用% 10,這就是爲什麼我使用字符串值

相關問題