首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JAVA中计算短型数组的平均值

问在JAVA中计算短型数组的平均值
EN

Stack Overflow用户
提问于 2017-08-03 13:38:18
回答 2查看 631关注 0票数 1

假设我在Java语言中有一个short[] thisArray,我需要根据这个数组中元素的数量来计算平均值。但是显然,.length将返回一个整数来表示thisArray的长度。

我不能将它转换为int数组或int,因为它不允许将int转换回short。我确实需要有一个简短的结果,并存储回另一个简短的结果。

如何避免这个经典错误:错误:不兼容的类型:从整型到短整型的可能有损转换= sum / thisArray.length;

代码语言:javascript
复制
public static short getSum(short[] sumArray) {
  short sum = 0;
  for(short i : sumArray) {
    sum += i;
  }
  return sum;
}

sum = getSum(thisArray);

short result = sum / thisArray.length;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-03 13:40:24

如果你确定平均值可以放入一个短变量中,你只需对结果进行转换:

代码语言:javascript
复制
short result = (short)(sum / thisArray.length);

我还将sum更改为int,以减少溢出的风险(如果和大于32767,则可能发生溢出)。

总结一下:

代码语言:javascript
复制
public static int getSum(short[] sumArray) {
  int sum = 0;
  for(short i : sumArray) {
    sum += i;
  }
  return sum;
}

...

int sum = getSum(thisArray);

short result = (short) (sum / thisArray.length);
票数 3
EN

Stack Overflow用户

发布于 2017-08-03 13:40:20

您需要显式转换结果

代码语言:javascript
复制
short result = (short)( sum / thisArray.length );

当您将int值赋给short变量时,编译器会保护您不会丢失数据。提供强制转换是告诉编译器你知道你在做什么的通常方式,这个操作是OK的。

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

https://stackoverflow.com/questions/45475685

复制
相关文章

相似问题

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