这里有一个例子
private void method(){
int X= Integer.parseInt(XjTF.getText());
int Y= Integer.parseInt(YjTF.getText());
float Z =(X+Y)/6;
int output = Math.round(Z);
OutputjTF.setText(Integer.toString(output)+" =answer rounded to closest integer");
}
您的x
和y
变量是int
,因此Java执行整数除法,这里是用6除法。这就是小数点的下降。然后在分配给z
之前将其转换为float
。当它到达math.round
时,小数点已经消失了。
尝试将x
强制转换为float
以强制浮点除法:
float Z =((float) X + Y)/6;
这将保留Math.round
将用于正确舍入其输入的十进制信息。
float Z = (X + Y)/6.0f;
它不能仅仅是6.0
,因为这是一个double
文本,并且Java编译器在试图将double
分配给float
时会抱怨“可能丢失精度”。
以下是JLS第15.17.2节的相关引用:
整数除法向0四舍五入。即,对作为整数的操作数n和d进行二进制数值提升(§5.6.2)后产生的商是一个整数值q,其大小在满足d·q≤n的情况下尽可能大。
问题内容: 我怎么总是将a舍入为一个,而不舍入它。我知道,但是我希望它总是四舍五入。因此,如果为,则四舍五入为4。 问题答案: 您可以使用方法。 请参阅JavaDoc链接:https ://docs.oracle.com/javase/10/docs/api/java/lang/Math.html#ceil(double ) 从文档: 细胞 返回大于或等于自变量且等于数学整数的最小(最接近负无穷大
如果一个数字有精确的二进制表示,比如(十进制)0.5,难道不应该正确地四舍五入吗? 编辑:该问题发生在3.4.3版本中,但不发生在2.7.6版本中
有人能告诉我怎么打双人球吗 e、 g.从双倍值55.6666666666667开始-四舍五入到双倍值56.0000000000- 或者从55.333333333333开始-四舍五入到55.0000000000的两倍- 谢谢。
本节讨论了精度数学的四舍五入特性,ROUND()函数,以及插入DECIMAL列时的四舍五入特性。 ROUND()函数的行为取决于其参量是准确的还是近似的: ·对于准确值数值,ROUND()采用“半值向上舍入”规则:如果小数部分的值为.5或更大,如果是正数,向上取下一个整数,如果是负数,向下取下一个整数(换句话讲,以0为界限执行舍入)。如果小数部分的值小于.5,如果是正数,向下取下一个整数,如果是负
本文向大家介绍javascript进行四舍五入方法汇总,包括了javascript进行四舍五入方法汇总的使用技巧和注意事项,需要的朋友参考一下 原生 javascript 中四舍五入的函数 toFixed(n) , n为要保留的小数位数。 (0<= n <=20) http://jsfiddle.net/14x0vhu6/ 输出值不是预想的1.0999,而是 1.0999000000000000
问题内容: 所以,我试图找出如何在实践中使用DFT来检测流行的信号中的频率。我一直在想什么 傅立叶变换和DFT算法是如何工作的,但显然我仍然有路要走。我已经写了一些代码来生成一个信号(自从意图是配合音乐工作,我产生了一个主要的C和弦,因此怪异频率值),然后尝试返回到频率数字。在这里是我的密码吗 这给了我这和我编码的频率(261.63、329.63和392.0)。我做错什么了我该怎么修? 问题答案: