java - float 据[] = 新浮点[j];为什么这在 java 中无效?我们不能有一个 float 类型的数组吗?

标签 java arrays

编译时出现此错误

Solution.java:13: error: possible loss of precision
        float data[] = new float[j];
                                 ^

必需:整数 发现: float

通过下面的代码得到它

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        float sum =0;
        float j = in.nextFloat();
        float data[] = new float[j];
        for(int i=0;i<j;++i)
            {
            float m = in.nextFloat();
             data[i] = m;
        }
        for(int k =0; k<j;++k)
            {
             sum += data[k];
        }
    System.out.println(sum);
}

}

也许我错了,新人请忍受我的菜鸟。

最佳答案

数组的索引必须是 int。您不能拥有包含 17.54 个元素的数组。

如果您希望数组的长度由 float 变量的值确定,则可以将其转换为 int(假设 j 不太大) :

float data[] = new float[(int)j];

关于java - float 据[] = 新浮点[j];为什么这在 java 中无效?我们不能有一个 float 类型的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100472/

相关文章:

java - 学习java 8

java - 将单个 jar(依赖项)添加到共享 Eclipse 项目

arrays - 如何使用 bash 脚本并排打印两个数组?

java - 在 log4j xml 配置中使用系统环境变量

Java 编辑 Jar 文件

java - 如何在没有错误警告的情况下在excel中输出id号

php - preg_replace/e 修饰符被弃用,使用数组作为模式和替换

python - 如何对 numpy 矩阵中的每个元素执行操作?

c - 使用循环和 switch 语句进行一维数组操作迭代

arrays - 利用检索到的对象的属性来填充数组和后续标签的最佳方法?