北漂老妖 2019-09-04 19:06 采纳率: 50%
浏览 225

Java核心技术 Retirment试数程序报错

package cn.think.java;

import java.util.Scanner;

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

System.out.print("How much money will you contribute every year ?");
double payment = in.nextDouble();

System.out.print("Interestrate in % : ");
double interestRate = in.nextDouble();

double balance = 0;
int year = 0;

String input;

do {
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;

year++;

System.out.printf("After year %d , your balance is %,2.f%n", year, balance);

System.out.print("Ready to retire ? (Y / N)");
input = in.next();

}while(input.equals("N"));
}

}

程序报错


Error:
How much money will you contribute every year ?10000
Interestrate in % : 0.2
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = ','
at java.util.Formatter.checkText(Formatter.java:2579)
at java.util.Formatter.parse(Formatter.java:2555)
at java.util.Formatter.format(Formatter.java:2501)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at cn.think.java.Retirment_2.main(Retirment_2.java:27)

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-09-05 09:04
    关注

    字符串格式化的用法错误了:有三个 % 占位符,但是只给了两个参数,另外,第二个% 后面的 , 不识别,去掉,改成这样试试:

    System.out.printf("After year %d , your balance is %.2f\n", year, balance);
    

    试了下这个.2f 保留两位,可以。

    How much money will you contribute every year ?200.50
    Interestrate in % : 10
    After year 1 , your balance is 220.55
    

    需要研究一下字符串格式化的语法:https://blog.csdn.net/weixin_44246503/article/details/86088223

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献