我有一个我正在修改的考试题目,问题是4分.
"在java中,我们可以将int分配给double或float".这会丢失信息吗?为什么?
我已经说过,因为int通常具有固定的长度或大小 - 存储数据的精度是有限的,其中以浮点存储信息可能是无限的,基本上我们丢失信息因为这个
现在我有点粗略地说我是否在这里击中了正确的区域.我非常肯定它会失去精确度,但我无法完全理解为什么.我能得到一些帮助吗?
我有以下型号:
public class WeightChange {
private float value;
public float getValue() {
return value;
}
public void setValue(float value) {
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
和收藏:
private List<WeightChange> weightChanges;
Run Code Online (Sandbox Code Playgroud)
我已经实现了使用Java 8功能获得平均权重值的函数:
public float getAvgChangedWeight() {
return (float) weightChanges.stream().mapToDouble(WeightChange::getValue).average().getAsDouble();
}
Run Code Online (Sandbox Code Playgroud)
你能不能帮助改进它,因为我不认为铸造加倍是一个好主意.
当weightChanges集合为空时,它也会抛出异常.在这种情况下如何改进它?
我有一个x类型的变量float,应该提升到一定的功率p.如果x是double我可以使用的Math.pow(x, p).是否可以计算x^p,结果也是float?