我的问题基本上是这样的:
在BigDecimal中使用一个值时,如何在随机数前面追加零?假设我希望有一个小于10的数字遵循完全随机的模式。现在我希望在该数字前面添加零,这样实际的数量加起来就是10个数字。
下面是一个例子:BigDecimal数字=新的BigDecimal(2353);
现在我想有这样的输出:0000002353
有没有一个函数可以将数字附加到BigDecimal类型上?我找不到。
我尝试使用while循环来检查数字是否小于10。但是我对BigDecimal的理解还不够好,无法将整数值与BigDecimal类型进行实际比较。提前感谢您的帮助!
4条答案
按热度按时间xbp102n01#
如果使用
BigInteger
(或任何整数类型,如int
或long
),则可以使用以下格式设置值的格式格式字符串中的前导
0
表示用0填充,后面的10
是所需的长度...2ic8powd2#
BigDecimal
是用来储存大型浮点数的。因为在浮点数中,0000002353和2353之间没有任何差异,所以没有合理的方法可以将前置0附加到BigDecimal
,就像没有合理的方法可以将前置0附加到一般的float
一样。根据您要寻找的行为,我建议使用String
来存储您的数字,然后在您想要执行任何操作时转换为BigDecimal
或从BigDecimal
转换。若要比较整数型别与
BigDecimal
,请先将变数转换为BigDecimal
,然后呼叫BigDecimal
的compareTo
方法。更多信息请参阅this问题。lqfhib0f3#
由于您对格式化数字感兴趣,因此可能需要查看
DecimalFormat
类,该类允许根据指定的模式格式化浮点数和整数。6jjcrrmo4#
如果最大位数为10,并且只允许整数,则只需使用
long
和标准格式即可: