浮动答案= 5/2;和浮动答案5.0 / 2.0;
当我添加小数点时,我得到2.5这是正确但没有小数我得到2?
答案 0 :(得分:4)
整数除法与浮点除法不同。在第一个示例中,您将两个整数分开,得到结果2,然后将其分配给浮点数。
答案 1 :(得分:2)
这很简单。根据整数除法评估5/2(因为5和2是整数),结果是2(整数除法给出商,即向下舍入),并将其转换为浮点数。 5.0 / 2.0进行浮点除法,因此得到2.5的正确答案。
答案 2 :(得分:1)
发生这种情况的原因是因为当你使用5和2时,数字被解释为整数,这也会产生一个舍入的整数,然后转换为浮动"回答"。当您指定5.0和2.0时,这些被认为是浮点数,这允许结果也是浮点数。
答案 3 :(得分:1)
从用于数字推广的Java文档:http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#239829
15.17.2分部操作员/
二元/运算符执行除法,产生它的商 操作数。左手操作数是红利和右手 操作数是除数。 整数除法向0舍入。即 为操作数n和d生成的商,它们是二进制之后的整数 数字促销(§5.6.2)是一个整数值q,其大小为 在满足| d·q || n |的同时尽可能大;此外,q是积极的 当| n || d |并且n和d具有相同的符号,但q为负时 | N || d |和n和d有相反的符号。有一个特例 不满足此规则:如果被除数是负整数 其类型的最大可能量,然后除数为-1 发生整数溢出,结果等于被除数。 尽管溢出,但在这种情况下不会抛出异常。在 另一方面,如果整数除数中除数的值为0, 然后抛出ArithmeticException。
5/2的结果是一个整数,然后在赋值期间将该整数转换为浮点数。
答案 4 :(得分:0)
因为第一个是基于整数。因此,该部门将四舍五入为2。然后它被转换成浮动。
第二个是从一开始就基于花车,所以你得到了正确答案。
答案 5 :(得分:0)
你用整数计算并使用整数算术。在计算之后发生了浮动的转换。你可以写
float answer =((float)5)/((float)2)