Tag: rounding

使用双精度时,为什么不(x /(y * z))与(x / y / z)相同?

这部分是学术性的,就我的目的而言,我只需将它四舍五入到小数点后两位; 但我很想知道结果会产生两个略有不同的结果。 这是我写的测试,以缩小到最简单的实现: @Test public void shouldEqual() { double expected = 450.00d / (7d * 60); // 1.0714285714285714 double actual = 450.00d / 7d / 60; // 1.0714285714285716 assertThat(actual).isEqualTo(expected); } 但它输出失败了: org.junit.ComparisonFailure: Expected :1.0714285714285714 Actual :1.0714285714285716 任何人都可以详细解释在引擎盖下发生的事情导致1.000000000000000 X的值不同吗? 我在答案中寻找的一些要点是:精度丢失在哪里? 首选哪种方法,为什么? 哪个是正确的? (在纯数学中,两者都不对。也许两者都错了?)这些算术运算有更好的解决方案或方法吗?

如何在Jasper Reports中为十进制数指定RoundingMode

我正在使用Java与Jasper Reports,并希望使用此格式掩码”#,##0.00″格式化十进制值。 乍一看,所有看起来都很好,但我发现使用RoundingMode.HALF_EVEN舍入模式RoundingMode.HALF_EVEN入我的十进制值,这在我的情况下是不正确的。 这是否可以指定其他舍入模式(我需要HALF_DOWN模式)?

按一下按钮

我正试图在(x,y)坐标(150,210)处进行JButton回合。 我希望按钮是一个大小的椭圆形(40,40)。 并且按钮背景颜色红色。 它不需要文本,所以我应该得到一个我想要的任何尺寸的按钮,对吧? 我正在使用面板,并将setLayout设置为null: setLayout(null) 我检查了谷歌,它把我带到了这里。 我怎样才能做到这一点?