輸出結果錯誤,幫忙看看是哪里出的問題了。
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+"輸入錯誤!");
? ????????? ??
}
}
2017-10-29
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+"位數字的數");