gpt4 book ai didi

Java 程序打印出 0 而不是百分比

转载 作者:行者123 更新时间:2023-11-29 07:11:22 24 4
gpt4 key购买 nike

我正在做一个项目,但程序的这一部分不起作用。它要求输入一个字符,然后读取给定的文本文件,并输出该字母在文本文件中出现的百分比。这是代码:

public static void inputLetterFrequency() {
String letterInput = JOptionPane.showInputDialog("Please input a letter to find out the frequency");
letterInput.toUpperCase();
char c = letterInput.charAt(0);
content = content.toUpperCase();

for (int i = 0; i < content.length(); i++) {
if (content.charAt(i) == c) {
letterOccurence++;
}
}

letterFrequency = (letterOccurence / numberCharacters) * 100.0;

JOptionPane.showMessageDialog(null, "Frequency of letter " + c + " is " + letterFrequency + "%");
String tryAgain = JOptionPane.showInputDialog("Please choose an option: \n1 to input another letter \n2 to exit ");
int n = Integer.parseInt(tryAgain);
if (n == 1) {
CharacterAnalyzer.inputLetterFrequency();
} else {
System.exit(0);
}

在文件开头声明如下

public static int numberCharacters;
public static String Filename = UserPrompt.content;
public static int letterOccurence;
public static double letterFrequency;
public static int digitOccurence;
public static double digitFrequency;

最佳答案

这是计算 letterFrequency 的代码:-

letterFrequency = (letterOccurence / numberCharacters) * 100.0;

只需将上面的代码改成:-

letterFrequency = letterOccurence * 100.0 / numberCharacters;

在第一个代码中:- (letterOccurence/numberCharacters) 将首先被计算,因为这是一个整数除法,它的结果将是0,如果 numerator 小于 denominator

要使其成为浮点除法,只需在除法之前将分子乘以100.0

关于Java 程序打印出 0 而不是百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594977/

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