黑马程序员技术交流社区

标题: java简单小程序问题,求指教 [打印本页]

作者: ★忙碌★    时间: 2013-8-31 08:01
标题: java简单小程序问题,求指教
本帖最后由 ★忙碌★ 于 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);
    }
}
作者: 第一印象    时间: 2013-8-31 08:24
哥们儿,你这程序编译都报错呢
问题如下: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. }
复制代码

作者: xiangzi2008006    时间: 2013-8-31 08:32
  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. }
复制代码

作者: 兜兜转转    时间: 2013-8-31 08:32
楼上哥们正解
作者: 陈国柱    时间: 2013-9-5 00:15
之前没用过这个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.         }



复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2