输出结果错误,帮忙看看是哪里出的问题了。

来源:-

大口袋_Hello

2017-10-29 20:40

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回答

  • 慕粉3617928
    2017-10-29 21:13:27

    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+"位数字的数");

    大口袋_He...

    这个求位数的while循环可以用if else改写嘛?刚试了下用(int)强制转换double类型的输出结果变为int还是输出了错误的结果。

    2017-10-29 21:25:43

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165558 学习 · 17587 问题

查看课程

相似问题