Java 双倍+;双=字符串?
我有一个问题,输出应该是双精度的,但它是字符串 我试图添加两个双值,但它是作为字符串提供的。我正在使用eclipse。目前该程序正在编译和运行。如果有人有时间,我会很感激的。干杯,伙计们。这是源代码Java 双倍+;双=字符串?,java,java.util.scanner,Java,Java.util.scanner,我有一个问题,输出应该是双精度的,但它是字符串 我试图添加两个双值,但它是作为字符串提供的。我正在使用eclipse。目前该程序正在编译和运行。如果有人有时间,我会很感激的。干杯,伙计们。这是源代码 import java.util.Scanner; public class FutureInvestment { public static void main(String[] args) { Scanner input = new Scanner(Syst
import java.util.Scanner;
public class FutureInvestment
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter investment amount: ");
double investmentAmount = input.nextDouble();
System.out.println("Enter monthly interest rate: ");
double monthlyInterestRate = input.nextDouble();
System.out.println("Enter number of years: ");
int numberOfYears = input.nextInt();
double futureInterestValue = investmentAmount * ( Math.pow((1 + monthlyInterestRate), numberOfYears * 12));
System.out.println("Accumulated value is: " + futureInterestValue + investmentAmount);
}
}
缺少一些方括号,因此语句从左到右执行,从而在字符串后面追加double。您将需要以下内容: System.out.println(“累计值为:”+(未来利息价值+ 投资额);
缺少一些方括号,因此语句从左到右执行,从而在字符串后面追加double。您将需要以下内容: System.out.println(“累计值为:”+(未来利息价值+ 投资额); 试试这个 您得到的字符串是连接的结果,因为连接到字符串的任何内容都将转换为字符串。因此,您需要像上面显示的那样提前完成值,或者需要括号 试试这个
您得到的字符串是连接的结果,因为连接到字符串的任何内容都将转换为字符串。因此,您需要提前完成上述值,或者需要括号。我认为将其更改为该值将有效:
double futureInterestValue = investmentAmount * ( Math.pow((1 + monthlyInterestRate / 100), numberOfYears * 12));
System.out.println("Accumulated value is: " + (futureInterestValue + investmentAmount));
我认为把它改成这样会有效:
double futureInterestValue = investmentAmount * ( Math.pow((1 + monthlyInterestRate / 100), numberOfYears * 12));
System.out.println("Accumulated value is: " + (futureInterestValue + investmentAmount));
在第一个+之后,Java将第一个字符串与第一个double连接起来,从而生成一个字符串。然后它对第二个double执行另一个连接。在生成字符串之前,需要先计算结果
在第一个+之后,Java将第一个字符串与第一个double连接起来,从而生成一个字符串。然后它对第二个double执行另一个连接。您需要先计算结果,然后再从中生成字符串。因为您在println中执行此操作,所以它正在执行字符串连接。如果要将double添加到一起,则需要使用()对它们进行分组 试一试
因为您在println中执行它,所以它执行字符串连接。如果要将double添加到一起,则需要使用()对它们进行分组 试一试
问题是您的数字太大了,Java在打印值时会切换到科学记数法 如果您的月利率输入为4.25(即4.25%),您必须将其转换为正确的十进制表示形式0.0425,然后才能在计算中使用它-您必须将其除以100。如果你不这样做,所使用的利率将远远高于你的预期;在这种情况下为425% 换句话说,改变
double monthlyInterestRate = input.nextDouble();
到
问题是您的数字太大了,Java在打印值时会切换到科学记数法 如果您的月利率输入为4.25(即4.25%),您必须将其转换为正确的十进制表示形式0.0425,然后才能在计算中使用它-您必须将其除以100。如果你不这样做,所使用的利率将远远高于你的预期;在这种情况下为425% 换句话说,改变
double monthlyInterestRate = input.nextDouble();
到
当两个运算符可以在一行代码中求值时,它们的优先级是固定的。虽然许多人已经解释过这个例子,当两个运算符可以在一行代码中求值时,它们以固定的优先级进行求值。虽然许多人已经解释了这个示例,但您可以尝试:
System.out.println("Accumulated value is: " + (futureInterestValue + investmentAmount));
或者添加一个变量,如double累加值=未来利息价值+投资金额代码>
然后System.out.println(“累计值为:”+累计值)代码>您可以尝试:
System.out.println("Accumulated value is: " + (futureInterestValue + investmentAmount));
或者添加一个变量,如double累加值=未来利息价值+投资金额代码>
然后System.out.println(“累计值为:”+累计值)代码>您需要格式化输出。您可以使用或尝试以下功能:
System.out.println(
String.format("Accumulated value is: %.2f",
futureInterestValue + investmentAmount));
所以你可以得到2位小数的输出。另外,我建议用您的结果创建一个变量,这样您就可以将代码转换为
double accumulatedValue = futureInterestValue + investmentAmount;
System.out.println(
String.format("Accumulated value is: %.2f", accumulatedValue);
您需要格式化输出。您可以使用或尝试以下功能:
System.out.println(
String.format("Accumulated value is: %.2f",
futureInterestValue + investmentAmount));
所以你可以得到2位小数的输出。另外,我建议用您的结果创建一个变量,这样您就可以将代码转换为
double accumulatedValue = futureInterestValue + investmentAmount;
System.out.println(
String.format("Accumulated value is: %.2f", accumulatedValue);
这里是我得到的输出输入投资金额:1000输入月利率:4.25输入年数:1累计值是:4.384414858452464E111000.0,预期结果是累计值是1043.34我想我的答案可以帮助你这里是我得到的输出输入投资金额:1000输入月利率:4.25输入年数:1累计值是:4.384414858452464E111000.0预期结果是累计值是1043.34我想我的答案可以帮助你我担心它不起作用我有以下输出==>累计值是:4.384414868452464E11我认为你的计算是错误的,你需要先将利息除以100,我已经更新了我的代码我恐怕它不起作用了我有以下输出==>累积值是:4.384414868452464E11我想你的计算是错误的,你需要先除以利息100,我已经更新了我的代码相同的输出:累积值是:4.384414868452464E11如果你是指数字中的“E”,它是一个双符号而不是字符串相同的输出:累计值为:4.384414868452464E11如果您指的是数字中的“E”,则它是一个双符号而不是字符串