我在 java 中舍入 BigDecimals 时遇到了一些麻烦。我正在尝试将值从英尺转换为英寸,反之亦然,这就是我所拥有的:
//To convert from ft to in;
//...
BigDecimal CINCH = new BigDecimal("12");
Inch.setText(CINCH.multiply(VFEET).toString()); //VFEET is the user input
//To convert from in to ft
//...
BigDecimal CFEET = new BigDecimal("12"); //Initially I multiplied the input with 0.0833333333
Feet.setText(VINCH.divide(CFEET, 7, RoundingMode.HALF_UP).toString()); //VINCH is the user input
如果我尝试将 1 英尺转换为英寸,它将返回预期值 (12)。如果我尝试将 12 英寸转换为英尺,它会返回预期值 (1),但会像我预期的那样使用 7 位小数。
如果我将 1 英寸转换为英尺,它返回 0.08333333,如果我将此值从英尺转换为英寸,它应该返回 1,但它返回 0.9999996。如果我将 2 英寸转换为英尺,则返回 0.1666667,如果我将此值从英尺转换为英寸,则返回 2.0000004
我怎样才能解决这个问题?(我知道我可以用双打来做到这一点,这是我的第一个计划,但我遇到了一个准确性问题(比这个更大))