如何在java中将输出小数格式化为小数点后两位?
How do I format the output decimal to two places after the decimal in 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(时间 + " seconds\t\t" + String.format("%.2f 米", fallDistance(time)));}
我希望我的 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(时间 + " seconds\t\t" + String.format("%.2f 米", fallDistance(time)));}