Java 的 Math.pow() 在简单情况下产生奇怪的结果

标签 java math pow

我正在尝试做一个简单的编程挑战,但我遇到了与 Math.pow() 函数无关的奇怪问题。

我得到 6 的 1 次方是 54?

我正在读取在命令行上输入的文件(通过 args[0])。该文件仅包含三个数字:

6
75
153

我正在运行的程序如下:

public static void main (String[] args)throws IOException{

    File filename = new File(args[0]);
    Scanner file = new Scanner(filename);

    while(file.hasNextLine()){
        String numbers = file.nextLine();
        int numValue = Integer.parseInt(numbers);

        int sumOfPowers = 0;

        for(int i = 0; i < numbers.length(); i++){
            sumOfPowers += Math.pow(numbers.charAt(i), numbers.length());
            System.out.println(Math.pow(numbers.charAt(i), numbers.length()));
            System.out.println(Math.pow(6, 1));
        }

    }
    file.close();
}

生成的输出是奇数。基于这些类型的值创建幂函数是否违反 Java 规则?

我得到的输出:

54.0
6.0
3025.0
6.0
2809.0
6.0
117649.0
6.0
148877.0
6.0
132651.0
6.0

最佳答案

我认为这里主要的误解是 '6' != 6 如果它们是相同的,你就不需要有不同的文字。相反,'6' 的 ASCII 为 (int) '6'54

enter image description here

关于Java 的 Math.pow() 在简单情况下产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203092/

相关文章:

java - 如何在 RecyclerView 上设置 onClickListener

file - Matlab:如何从文件中读取二进制数?

java - 当我尝试计算 2 的 n 次幂时,当 n 大于 30 时,我得到 0,我该如何修复它?

java - 不记得可以连接组件的 Java 案例工具的名称

java - Intellij IDEA : How to set up Imported Maven Project Correctly?

Java 代理 - 无法正确交换来自 HTTP GET/POST 请求的数据

python - 生成元素之和固定的非负整数数组

swift - 如何计算 3D 空间中相机方向的两点之间的角度

c - 为什么我不能用 pow 函数重现浮点问题?

c - 尝试用 C 语言逼近欧拉数