首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我会得到“不相容类型错误”?

为什么我会得到“不相容类型错误”?
EN

Stack Overflow用户
提问于 2015-08-10 07:54:27
回答 2查看 66关注 0票数 1

以下是代码:

代码语言:javascript
复制
double[] hundredElementsMillionArray = new double[10000000]; 

        for(double ii=0;ii<10000000;ii++){
            hundredElementsMillionArray[ii] = ii;
        }

我收到以下错误:

不兼容类型:可能从双重到int的有损转换

虽然代码中没有使用int。为什么是这样?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-10 07:56:01

数组的索引始终是int,因此hundredElementsMillionArray[ii]需要将ii转换为int,但是由于这种转换可能会导致信息丢失,所以如果没有显式的强制转换,就不允许这样做。

这将通过汇编:

代码语言:javascript
复制
double[] hundredElementsMillionArray = new double[10000000]; 
for(double ii=0;ii<10000000;ii++){
    hundredElementsMillionArray[(int) ii] = ii;
}

这也将通过汇编:

代码语言:javascript
复制
double[] hundredElementsMillionArray = new double[10000000]; 
for(int ii=0;ii<10000000;ii++){
    hundredElementsMillionArray[ii] = ii;
}
票数 3
EN

Stack Overflow用户

发布于 2015-08-10 08:00:53

数组索引不能是floatdouble,必须是integer,所以必须以hundredElementsMillionArray[(int)ii]的形式从typecastint,或者最好的解决方案是使用索引变量作为int类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31914327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档