2

如何在 BigDecimal 中连接两个数字?我有这个例子:

BigDecimal d = BigDecimal.valueOf(5.5);
        int a = 1;
        int b = 11;

我想在不使用除法或其他操作的情况下连接d.ad.b生成5.501和输入!5.511same length

是否有使用 BigDecimal 的指令直接制作它?

4

3 回答 3

7

使用可以解析字符串的事实BigDecimal,并且字符串易于连接。

BigDecimal d = BigDecimal.valueOf(5.5);
int a = 1;
int b = 11;

BigDecimal da = new BigDecimal(String.format("%s%02d", d, a));
BigDecimal db = new BigDecimal(String.format("%s%02d", d, b));

System.out.println(da);
System.out.println(db);

输出:

5.501
5.511

长度是硬编码的%02d。您可以通过检查动态生成格式字符串String.valueOf(a).length()

于 2012-05-15T09:13:25.053 回答
4
da = d.add(new BigDecimal("0.00" + a);
db = d.add(new BigDecimal("0.0" + b);
于 2012-05-15T09:13:17.767 回答
1

您可以:

  • 将它们转换为字符串,连接它们,然后返回一个新的 BigDecimal 对象
  • 将 a 和 b 除以 1000,然后将它们添加到 d
于 2012-05-15T09:14:15.220 回答