当前位置: 首页 > 面试题库 >

Java,仅提取BigDecimal的小数部分?

南宫胡媚
2023-03-14
问题内容

在Java中,我正在使用BigDecimal该类,并且代码的一部分要求我从其中提取小数部分。
BigDecimal似乎没有任何内置方法可以帮助我获取a的小数点后的数字BigDecimal

例如:

BigDecimal bd = new BigDecimal("23452.4523434");

我想4523434从上面表示的数字中提取。最好的方法是什么?


问题答案:

我会尝试的bd.remainder(BigDecimal.ONE)

使用remainder方法和ONE常量。

BigDecimal bd = new BigDecimal( "23452.4523434" );
BigDecimal fractionalPart = bd.remainder( BigDecimal.ONE ); // Result:  0.4523434


 类似资料:
  • 问题内容: 假设我们有一个双值(应该是动态的) 现在,需求是对数字进行拆分并获得十进制数字和小数位数,它们将是: 我得到了小数部分的结果,但是请您给出小数部分的提示?非常感谢。 问题答案: double number = 12345.6789; // you have this int decimal = (int) number; // you have 12345 double fractio

  • 我算出了小数部分,但你能给出小数部分的提示吗?多谢.

  • 编辑:这与计算机如何处理浮点运算有关,这是每个程序员一生都要面对的事实。当我问这个问题时,我没有正确理解这一点。 我知道最简单的方法是: 现在,在一支笔和一张纸的现实世界中,如果我想将小数部分0.456“转换”为整数,我只需要乘以0.456*1000,就得到了所需的结果,即456(整数)。 许多建议的解决方案建议将数字拆分为字符串并以这种方式提取小数部分,但我需要从数学上获得解决方案,而不是使用字

  • 问题内容: 如何计算BigDecimal的对数?有谁知道我可以使用的任何算法? 到目前为止,我在谷歌搜索中提出了(无用的)想法,即仅转换为double并使用Math.log。 我将提供所需答案的精确度。 编辑:任何基地都可以。如果在base x中更简单,我会做。 问题答案: Java Number Cruncher:《 Java数值计算程序员指南》提供了使用牛顿方法的解决方案。这本书的源代码在这里

  • 我在斯卡拉偶然发现了intersting这个东西(可能只对我来说)。总而言之,如果我们有一个BigDecimal(假设,其中是十进制字符串) 不会总是产生< code>true。我认为它与大小数的运算有关。我知道在scala中,创建BigDecimals的默认MathContext设置为< code>DECIMAL128(四舍五入,精度等于34)。我在小数点后超过30位的小数上发现了这种行为 我的

  • 我有值,我希望它们至少有两个十进制数字,但我不想修剪其余的数字。 是否有构建方法或更优雅的方法来实现这一点? 我不能使用,因为我希望在存在其他小数时保留它们。