java - 如何修复除法以获得正确的输出?

标签 java

我在除法中遇到问题,即当我在没有类型转换的情况下除以 9000000000/9 时,我得到 10^9 但当我将其转换为 float 时,它给出 9.9999994E8

long n = 10;
long sum = 9000000000;
float mean = ((float)sum)/(n-1);

请问有人可以帮我吗?我没有得到我所缺乏的地方,而且我进行研究的时间有限,这就是为什么我来这里是为了获得快速回复。

最佳答案

9000000000被视为in并且太大了,你要做9000000000L。尝试 BigDecimal:

    long n = 10;
    BigDecimal sum = new BigDecimal("9000000000");
    BigDecimal mean = sum.divide(BigDecimal.valueOf(n-1));

关于java - 如何修复除法以获得正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56905496/

相关文章:

java - 实现 WindowListener 错误

java - 我如何将一个函数作为参数传递给android中的另一个函数?

java - 使用 charAt 和 while 循环 Java 查找字符串中的字母

java - 正则表达式检查java中以字符 '@'开头的单词的出现

java - 如何用分词器构建解析器?

java - Spring + Tiles 3 JSP 未渲染

java - 随机化顶点位置 JUNG

java - StreamSets处理器找不到Redis库

java - 对象上的父类(super class)转换如何工作?

java - hibernate 查询: new DTO clause not working