Tag: 小数

如何自定义舍入的forms

我的问题似乎很简单,但仍然无法得到有效的东西。 我需要自定义Math.round舍入格式或其他东西,使其工作如下: 如果数字是1.6,他应该舍入到1,如果大于或等于1.7应该舍入到2.0。 所以使用#.6的所有其他小数结果我正在将1.6舍入为2的方式应舍入为1。 我怎样才能做到这一点? 谢谢!

如何检查double是否最多有n个小数位?

目前我有这个方法: static boolean checkDecimalPlaces(double d, int decimalPlaces){ if (d==0) return true; double multiplier = Math.pow(10, decimalPlaces); double check = d * multiplier; check = Math.round(check); check = check/multiplier; return (d==check); } 但是这个方法对于checkDecmialPlaces(649632196443.4279, 4)是失败的checkDecmialPlaces(649632196443.4279, 4)可能是因为我在基数为2的数字上进行了10次数学运算。 那么如何才能正确完成这项检查呢? 我想到获得double值的字符串表示,然后用regexp检查 – 但这感觉很奇怪。 编辑:谢谢你的所有答案。 在某些情况下,我真的得到了一个双倍,在这些情况下,我实现了以下内容: private static boolean checkDecimalPlaces(double d, int decimalPlaces) { if (d == 0) return true; final […]

DecimalFormat舍入

这是一个小代码来说明我所看到的 float floater = 59.999f; DecimalFormat df = new DecimalFormat(“00.0”); System.out.println(df.format(floater)); 这打印: 60.0 我想要打印 59.9 我需要做什么?

java-如何在指定的值范围内生成随机hex值

我在java Web应用程序中有一个场景,其中必须生成随机的hex值。 该值应在我指定的值范围内。 (值的范围可以是hex或整数值)。 什么是最有效的方法>我是否必须生成一个随机十进制数,然后将其转换为hex? 或者可以直接生成值?

Java – Decimal Format.parse返回具有指定小数位数的double值

我希望能够在格式字符串中给定多个小数位的情况下将字符串转换为Double 。 所以“###,## 0.000”应该给我一个2到3的小数位。 编辑 – 为发生的事情添加了更多信息 用户在UI中输入值 – 输入到String中。 规则是此值限制为3位小数。 底层代码将值存储在数据库中,然后在计算中使用。 因此,尾随小数位将导致计算略微超出预期。 我有以下代码: try { // output current locale we are running under (this happens to be “nl_BE”) System.out.println( “Current Locale is ” + Locale.getDefault().toString() ); // number in Central European Format with a format string specified in UK format String numberCE = “1,234567”; […]