编程和双打的新功能不会添加

时间:2014-08-27 04:34:49

标签: java integer double

我似乎无法获得双重值来添加我做错了什么?

import java.util.Scanner;

public class Practice_2_2
{
   public static void main(String[] args)
   {
      Scanner input = new Scanner(System.in);

     //Values
     System.out.println("Enter the two numbers");
     double R = input.nextDouble();
     double T = input.nextDouble();

     //Calculate sum
     double sum = (R + T);

     //Calculate difference
     double difference = (R - T);

     //Calculate product
     double product = (R * T);

     //Display results
     System.out.println("The sum of R and T=" +R + +T);
     System.out.println("The difference of R and T=" +R - +T);
     System.out.println("The product of R and T=" +R * +T);
   }
} `

当我添加5作为数字时它告诉我总和是5.05.0并且它说" - "我尝试减去时不是有效的操作。我是非常新的,所以尽量放轻松我

感谢

9 个答案:

答案 0 :(得分:2)

这可能有点戏法,但基本上,Java将每个值转换为String表示,然后将它们作为单个String

一起添加

如果R = 5T = 1,那么

System.out.println("The sum of R and T=" +R + +T);

会输出类似......

的内容
The sum of R and T=51

相反,您需要先将计算包装在优先级组中,以便在转换为String之前对其进行处理,例如...

System.out.println("The sum of R and T=" + (R + T));

哪个不会输出更像......

The sum of R and T=6

您的其他陈述的相同组......

System.out.println("The difference of R and T=" + (R - T));
System.out.println("The product of R and T=" + (R * T));

括号允许确保在整体应用之前首先执行操作的结果......

那是"The sum of R and T=" + (R + T) Java首先重新启动R + T然后将结果连接到前面的String值,形成最终结果......

答案 1 :(得分:1)

它将值连接到输出字符串。不进行任何计算。

如果您想要执行计算,则必须用括号括起来:

System.out.println("The sum of R and T=" + (R + T));

答案 2 :(得分:1)

问题是您要将它们添加到String中。 Java将其视为:

System.out.println( ( "The sum of R and T=" +R ) + +T);

将结果附加到字符串时,您应手动使用括号来更正顺序:

System.out.println("The sum of R and T=" + (R + +T));
System.out.println("The difference of R and T=" + (R - +T)); 
System.out.println("The product of R and T=" + (R * +T));

此外,发生错误是因为这不是有效的操作:

"The difference of R and T=5.0" - 5.0

此外,首先,您不必在价值前使用+以使其成为正面。如果你想这样做,你的第一个+实际上是在连接中消耗的:

System.out.println("The sum of R and T=" + (+R + +T));

答案 3 :(得分:1)

编译器认为您在尝试添加双精度时尝试组合Strings。你需要做的是在括号内放置括号,这样就知道它是关节的。像这样:

//Display results
System.out.println("The sum of R and T=" + (R + T));
System.out.println("The difference of R and T=" + (R - T));
System.out.println("The product of R and T=" + (R * T));

括号和主String之间的加号告诉编译器将arthemtic的结果作为String添加到String中。您也不需要在正数前加上加号。编译器假定没有符号的变量是正的。

答案 4 :(得分:0)

这是因为你实际上没有做数学+符号只是作为字符串连接

您获得5.05.0总和的原因是因为它只是添加了R和T的String值。对于接下来的两个-*是未定义类型String

答案 5 :(得分:0)

而不是您尝试过的,您应该使用以下来计算值

 double R=5.0;
 double T=2.0;
 System.out.println("The sum of R and T=" +(R + T));
 System.out.println("The difference of R and T=" +(R - T));
 System.out.println("The product of R and T=" +(R * T));

输出:

 The sum of R and T=7.0
 The difference of R and T=3.0
 The product of R and T=10.0

答案 6 :(得分:0)

它只是将值连接到输出字符串。您可以尝试将结果存储在变量中,然后打印该变量,但这并不意味着您在打印时无法执行计算。 尝试在括号中执行操作。

请在提问时添加更多细节。

答案 7 :(得分:0)

简化所有答案。 System.out.println(" R和T之和=" + sum); 因为您要么将总和保存到变量。也替换其他人。 您的错误是因为编译器误将您的变量误认为字符串,其中+表示连接但是 - 无效。

答案 8 :(得分:0)

这是一个工作解决方案,代码中的更改最少。还有其他人指出当你做任何像String(x)+(其他一些对象)的事情时,java会在后面的对象上调用toString方法,然后将它与String x连接起来。     import java.util.Scanner;

public class Practice_2_2
{
   public static void main(String[] args)
   {
      Scanner input = new Scanner(System.in);

     //Values
     System.out.println("Enter the two numbers");
     double R = input.nextDouble();
     double T = input.nextDouble();

     //Calculate sum
     double sum = (R + T);

     //Calculate difference
     double difference = (R - T);

     //Calculate product
     double product = (R * T);

     //Display results
     System.out.println("The sum of R and T=" + sum);
     System.out.println("The difference of R and T=" + difference);
     System.out.println("The product of R and T=" + product);
   }
} `