A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ★忙碌★ 中级黑马   /  2013-8-31 08:01  /  1531 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ★忙碌★ 于 2013-9-5 07:04 编辑

本人初学java不明白的地方有很多....这个哪里有问题,谢谢:

public class Calc {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("please enter a number");
        String n1 = sc.nextLine();
        double a = (double)(n1);
        System.out.println("please enter another number");
        String n2 = sc.nextLine();
        double b = (double)(n2);
        double c = a+b;
        System.out.println("The answer is " + c);
    }
}

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

4 个回复

倒序浏览
哥们儿,你这程序编译都报错呢
问题如下:double a = (double)(n1);  double b = (double)(n2);这个n1和n2是String类型,String类型转成double类型不是这么转的,怎么将String类型转成double类型只有double类型最清楚,而double类型是基本数据类型,没什么功能,所以要使用它的对象类型才能找到具体的转换的方法,也就是Double类型,你查阅API文档的话会发现有一个返回值为Double的,参数为String类型的方法,就是Double.parseDouble(),这个方法就是用来将Double类型转成String类型的,以后类似转换的方法都可以用这种思路去找,修改后的代码如下:
  1. class Calc  {
  2.     public static void main(String[] args){
  3.         Scanner sc = new Scanner(System.in);
  4.         System.out.println("please enter a number");
  5.         String n1 = sc.nextLine();
  6.         double a = Double.parseDouble(n1);
  7.         System.out.println("please enter another number");
  8.         String n2 = sc.nextLine();
  9.         double b = Double.parseDouble(n2);
  10.         
  11.         double c = a+b;
  12.         System.out.println("The answer is " + c);
  13.     }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报 1 0
  1. public class Test1 {
  2.           public static void main(String[] args){
  3.                 Scanner sc = new Scanner(System.in);
  4.                 System.out.println("please enter a number");
  5.                 String n1 = sc.nextLine();
  6. //                double a = (double)(n1);  //String类型转不了基础类型double,需要调用封装类Double的方法:Double.parseDouble(n1),下同
  7.                 double a = Double.parseDouble(n1);
  8.                 System.out.println("please enter another number");
  9.                 String n2 = sc.nextLine();
  10. //                double b = (double)(n2);
  11.                 double b = Double.parseDouble(n2);
  12.                 double c = a+b;
  13.                 System.out.println("The answer is " + c);
  14.             }
  15. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
楼上哥们正解
回复 使用道具 举报
之前没用过这个scanner,返现这个真的太好用了。
  1. package JavaReview;
  2. import java.util.*;

  3. public class Testing {
  4.         public static void main(String[] args)
  5.         {
  6.                 Scanner sc = new Scanner(System.in);
  7.                 sop("Please enter a number:");
  8.                 double a = sc.nextDouble();//使用Scanner类的public double nextDouble(){}方法更方便。
  9.                 sop("Please enter another number:");
  10.                 double b = sc.nextDouble();
  11.                 sop("The answer of (a+b) is:"+(double)(a+b));
  12.                
  13.         }
  14.        
  15.         public static void sop(Object obj)
  16.         {
  17.                         System.out.println(obj);                               
  18.         }
  19.                

  20.         }



复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马