如何解决如何在Java中将输出的十进制格式设置为小数点后两位?
我希望我的fallingTime数字限制为两位小数。我使用了“ String.format(%。2f)”,但它给了我一条错误消息。
这是错误消息:
Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String
at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4426)
at java.base/java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2951)
at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2898)
at java.base/java.util.Formatter.format(Formatter.java:2673)
at java.base/java.util.Formatter.format(Formatter.java:2609)
at java.base/java.lang.String.format(String.java:3302)
at fallingDistance.main(fallingDistance.java:22)
public class fallingDistance {
public static double fallDistance(int fallingTime){
double distance;
double g = 9.8;
distance = (0.5*g*Math.pow(fallingTime,fallingTime));
return distance;
}
//public static void displayHeader(){
//System.out.println("Time\t\t\t\t\tDistance\n----\t\t\t\t\t--------");
//}
public static void main(String[] args){
//displayHeader();
for(int time = 1; time <= 10; time++){
System.out.println(time+ " seconds\t\t" + String.format("%.2f",fallDistance(time) + " meters"));
}
}
}
解决方法
将+
替换为,
System.out.println(time + " seconds\t\t" + String.format("%.2f",fallDistance(time)," meters"));
,
您放错了括号。以下应该可以。
for (int time = 1; time <= 10; time++) {
System.out.println(time + " seconds\t\t" + String.format("%.2f",fallDistance(time)) + " meters");
}
,
我从代码末尾删除了“ meters”,并将其放在“%.2f”之后,并且可以正常工作。现在的代码如下:
{System.out.println(time +“ seconds \ t \ t” + String.format(“%。2f米”,fallDistance(time)));}
,您的代码存在的问题是,您已将'''alter table department add AVG_SALARY number(10);
alter table department add MAX_SALARY number(10);
alter table department add MIN_SALARY number(10);
insert into department (AVG_SALARY,MAX_SALARY,MIN_SALARY) values (AVG(salary),MAX(salary),MIN(salary));
create or replace TRIGGER log_salary
after update of salary on employee
for each row
begin
insert into DEPARTMENT(AVG_SALARY,MIN_SALARY)
values(AVG(SALARY),MAX(SALARY),MIN(SALARY));
end;
update department
set salary = salary + 100.0
where SSN =888665555;
select * from DEPARTMENT;'''
作为参数传递给fallDistance(time) + " meters"
,并且String.format
是fallDistance(time) + " meters"
,而不是String
。格式double
无法格式化%.2f
,因此会出现错误。解决方案是将String
作为参数传递给fallDistance(time)
。
替换
String.format
使用
System.out.println(time+ " seconds\t\t" + String.format("%.2f",fallDistance(time) + " meters"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。