亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

輸出結果錯誤,幫忙看看是哪里出的問題了。

package com.flow;


import java.util.Scanner;


public class testDemo {


public static void main(String[] args) {

? ?????int count = 0;

? ?????//判斷一個數(小于十位)的位數,并輸出結果。

????????//該數字除以10e8結果不為0,則該數字為9位數字的數,以此類推。

? ?????System.out.println("請輸入一個1到999999999之間的數字!");//輸入數字

? ?????Scanner sc=new Scanner(System.in);

? ?????count=sc.nextInt();

? ?????if (count/10e8!=0) {

? ????????? System.out.println(count+"是一個9位數字的數");

????? ?}else if(count/10e7!=0) {

? ????????? System.out.println(count+"是一個8位數字的數");

??????}else if(count/10e6!=0) {

? ????????? System.out.println(count+"是一個7位數字的數");

????? ?}else if(count/10e5!=0) {

? ? ????????System.out.println(count+"是一個6位數字的數");

? ?????}else if(count/10e4!=0) {

? ????????? System.out.println(count+"是一個5位數字的數");

? ?????}else if(count/10e3!=0) {

? ????????? System.out.println(count+"是一個4位數字的數");

? ?????}else if(count/10e2!=0) {

? ???????? System.out.println(count+"是一個3位數字的數");

? ?????}else if(count/10!=0) {

? ????????? System.out.println(count+"是一個2位數字的數");

? ?????}else if(count!=0) {System.out.println(count+"是一個個位數字的數");}

???????? ?else System.out.println(count+"輸入錯誤!");

? ????????? ??

}

}


正在回答

1 回答

java中數據運算,跟數據類型有關。在前面的判斷條件中使用e,也就是科學計數法,為double,計算結果會轉為double類型數據,所以不可能為零。到10的時候,是整數和整數相除,結果也會返回整數,即沒有小數部分。若果傳入的值是各位,計算后就是0了。所以最后會輸入錯誤。在此處,可以通過count/10是否等于0來求整數位數。

int num = 0;

while(count/10!=0){

????num+=1;

????count = count/10;

}

?System.out.println(count+"是一個"+num+"位數字的數");

0 回復 有任何疑惑可以回復我~
#1

大口袋_Hello 提問者

這個求位數的while循環可以用if else改寫嘛?剛試了下用(int)強制轉換double類型的輸出結果變為int還是輸出了錯誤的結果。
2017-10-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

輸出結果錯誤,幫忙看看是哪里出的問題了。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號