gpt4 book ai didi

Java:Printf(%.2f,arg) 显示 f$ff 而不是 f.ff。什么可能导致这种情况?

转载 作者:行者123 更新时间:2023-12-01 06:05:04 26 4
gpt4 key购买 nike

public class Ex51 {
public static void main(String args[]) {

Scanner input = new Scanner(System.in);
System.out.println("Enter as many integers as you wish. Enter 0 to stop." + "\nReturns "
+ "\nNumber of negative integers input. " + "\nNumber of positive integers input." + "\nTotal sum."
+ "\nMean.");

int i = 0;
int sum = 0;
int temp = 0;
int minusCount = 0;
int plusCount = 0;
float mean = 0;
boolean isZero = false;
do {
System.out.print("Enter an integer: ");
temp = input.nextInt();
if (temp == 0 && i == 0) {
isZero = true;
break;
} else if (temp < 0) {
minusCount++;
} else if (temp > 0)
plusCount++;
if (temp != 0) {
i++;
sum += temp;
mean = (float) sum / (float) i;
}
} while (temp != 0);

if (!isZero) {
System.out.printf("\nThe number of positives is: %d" + "\nThe number of negatives is: %d"
+ "\nThe total is: %d" + "\nThe average is: %.2f", plusCount, minusCount, sum, mean);
} else {
System.out.println("No numbers are entered except 0.");
}
}
}

这是一个示例运行:

Enter as many integers as you wish. Enter 0 to stop.
Returns
Number of negative integers input.
Number of positive integers input.
Total sum.
Mean.

Enter an integer: 8
Enter an integer: 6
Enter an integer: 20
Enter an integer: -2
Enter an integer: 0

The number of positives is: 3
The number of negatives is: 1
The total is: 32
The average is: 8$00

我的问题就在底部:8$00当我为 float 指定 %.2f 时,中间没有特殊字符。对于 arg 平均值,所需的输出将为“8.00”。我发布了所有代码,因为我认为我会让任何初学者的错误变得相当明显,如果不是,我的设置是否有任何问题。我在 Eclipse 上使用 jre9 运行它。

最佳答案

“.”之前缺少一个数字例如2.2f。

对于其余的代码,为了初始化,您可以在一行中完成所有操作。最后一个 if 语句是无用的,因为您已经在第一个 if 语句中验证了它是否为 0,因此您不需要这个条件。无论如何你都不会到达那里,因为你的 while 条件是 temp 不为 0。
对于平均值你可以这样做:平均值=( float )(总和/i);我认为你只是让你的生活变得复杂。你可以这样做:

    int temp = 1;
int positive = 0;
int negative = 0;
int i = 0;
int sum = 0;
while (temp != 0)
{
System.out.print("Please enter an integer:");
temp = input.nextInt();
if(temp == 0)
//your print statement here
else if(temp > 0)
positive ++;
else
negative ++;
sum += temp;
i++;
}

关于Java:Printf(%.2f,arg) 显示 f$ff 而不是 f.ff。什么可能导致这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46942520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com