public static void main(String[] args) {
double g = 1 / 3;
System.out.printf("%.2f", g);
}
两个操作数(1和3)是整数,因此使用整数算术(这里是除法)。将结果变量声明为double只会导致在除法之后发生隐式转换。
整数除法当然会返回舍入为零的除法的真实结果。因此,0.333...
的结果在这里被舍入为0。(注意,处理器实际上并不进行任何舍入,但您仍然可以这样认为。)
另外,请注意,如果两个操作数(数字)都是浮点数;3.0和1.0,甚至只是第一个,然后使用浮点算术,给出0.333...
。
为什么这个程序的输出是而不是 当你除以3/2,它等于1.5,我认为Java只取整数的第一个值。发生什么事?
问题内容: 代码输出: 为什么值不同?为什么第二个输出看起来如此? 问题答案: 的浮点表示形式不正确: 那是因为浮点算法只是一种近似,尤其是当您超出了CPU可以准确建模的范围时(因为浮点是在硬件中处理的)。 整数除法不必将数字表示为浮点数,它只需要除以整数即可,在Python中整数可以任意增大而不会造成精度损失。 另请参阅: 浮点算法: Python教程中的 问题和局限性 每个程序员应了解的浮点运
问题内容: Python如何评估表达式? 我插了多少,这就是答案。请任何人可以解释这种行为 因为它是印刷,因为它是印刷 问题答案: 您的表情与: 可以在任何数字表达式之前使其为负,或不执行任何操作(存在对称性选项)。带有负号: 和 我看到您澄清了您的问题,说您来自C背景。在Python中,没有像C和C这样的增量运算符,这可能是造成混淆的原因。要递增或递减变量,或在Python中使用以下样式:
问题内容: 我正在使用eclipse java ee执行Java编程。 我的其中一个功能中包含以下代码行: 我收到以下错误: 类型不匹配:无法从int转换为Long 我不太明白为什么当我在变量中添加数字时会出现此错误。 该问题如何解决?为什么首先发生? 问题答案: 对象之间没有转换,因此您需要从中进行转换。加a 使整数成为(): 但是,从进行了转换,因此可以使用: 因此,您也可以这样编写: 从一个
问题内容: 在下面的代码中,我想计算序列中G和C字符的百分比。在Python 3中我可以正确获取,但是在Python 2中我可以获取。为什么结果不同? 问题答案: 是Python 3中的另一个运算符;在Python 2中,当将其应用于2个整数操作数时会更改行为,并返回下限除法的结果: 加: 代码的顶部以在Python 2中使用浮点除法,或用于强制Python 3使用整数除法: 使用这些技术中的任何
问题内容: 运行下面的代码结果为0? 问题答案: 两个操作数(1和3)是整数,因此使用整数算术(此处为除法)。将结果变量声明为double只会导致除法后发生隐式转换。 当然,整数除法会返回除法四舍五入的真实结果。因此,0.333…此处的结果四舍五入为0。(请注意,处理器实际上不进行任何舍入,但是您仍然可以这样考虑。) 另外,请注意,如果两个操作数(数字)均以浮点数给出;3.0和1.0,甚至只是第一