【问题标题】:Java Programming , Type CastingJava编程,类型转换
【发布时间】:2017-04-10 05:26:52
【问题描述】:

我在一个类中编写了一个方法,我想强制转换一个 int 数组 div 26 以将其传递给一个 double 的频率表。然后发生了那种错误。有人可以帮助我吗,我只是一个学生......?

谢谢

public void frequency(int[] count ,double [] Q){
        for(double arguments : Q){
            Q[arguments]=(double)(count[arguments]/26);
        }
    }



Encryption.java:35: error: possible loss of precision
            Q[arguments]=(double)(count[arguments]/26);
              ^
  required: int
  found:    double
Encryption.java:35: error: possible loss of precision
            Q[arguments]=(double)(count[arguments]/26);
                                        ^
  required: int
  found:    double

【问题讨论】:

  • 访问数组 viva 索引应该按整数完成,因为您没有 Q[3.5]
  • 您应该使用常规 for 循环并索引到 Q
  • Ehhh 真的谢谢你,这是一个愚蠢的人,但我是一名学生,我刚刚学习用 java 编程,我有很多错误要学习,谢谢你^^

标签: java casting int double


【解决方案1】:

您正在使用 double 作为数组的索引,这是不可能的,因为索引必须是 int 原始类型,这就是您收到编译错误的原因。

【讨论】:

  • Ehhh 真的谢谢你,这是一个愚蠢的人,但我是一名学生,我刚刚学习用 java 编程,我有很多错误要学习,谢谢你^^
【解决方案2】:

您正在尝试使用double 值访问数组索引,这是不正确的,数组将只包含 0、1、2 等索引...

此外,您将无法使用 for each 循环来遍历索引,因此请改用普通的 for 循环,如下所示:

for(int i=0;i<count.length;i++){
        Q[i]=(double)(count[i]/26);
}

【讨论】:

  • 我没有明白你的意思'有序集'? OP在哪里提到它?
  • Ehhh 真的谢谢你,这是一个愚蠢的人,但我是一名学生,我刚刚学习用 java 编程,我有很多错误要学习,谢谢你^^
猜你喜欢
  • 2018-09-23
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 2020-02-09
相关资源
最近更新 更多