使用java获取双变量中的第一百位值数字

使用java获取双变量中的第一百位值数字,java,Java,我正在尝试获取双精度值的第一百位数字(小数点后的第二位) 例如,如果双精度值是48.456999,我想用任何数学或BigDecimal方法得到值5,这是小数点后的第一百位 我尝试了以下代码: BigDecimal src = new BigDecimal("48.4569999"); BigDecimal a = src.remainder(BigDecimal.ONE); System.out.println("a : " + a); 结果是.456999,但我不想使用任何字符串函数来获取第

我正在尝试获取双精度值的第一百位数字(小数点后的第二位)

例如,如果双精度值是48.456999,我想用任何数学或BigDecimal方法得到值5,这是小数点后的第一百位

我尝试了以下代码:

BigDecimal src = new BigDecimal("48.4569999");
BigDecimal a = src.remainder(BigDecimal.ONE);
System.out.println("a : " + a);

结果是.456999,但我不想使用任何字符串函数来获取第二个数字。有什么数学或Bigdecimal函数可以做到这一点吗?非常感谢您的帮助。

为什么不乘以100,将所需的值推到正确的位置,将其转换为int(删除任何<1)然后执行%10,这将为您提供剩余的值(这将是您所需的数字)。

您可能正在寻找
movePointRight(int)

印刷品

a:5


乘以100,然后取整数部分,再除以10后取余数怎么样?完美的,非常优雅的解决方案,谢谢…知道BigDecimal类非常强大,但现在开始意识到了!!!我一直在尝试这个解决方案,直到我找到了一个带有BigDecimal的。这也很有效,但是BigDecimal更容易实现…谢谢你的帮助!!!不错,真的。我自己没怎么用过BigDecimal,所以我也学到了一些好东西;-)
int a = src.movePointRight(2).remainder(BigDecimal.TEN).intValue();