在 Java 里,BigDecimal 本身就可以表示任意精度的整数或小数,把它转成字符串非常简单,常用的有几种方式,取决于你想要什么格式。
BigDecimal bd = new BigDecimal("123456789012345678901234567890");
String s = bd.toString();
System.out.println(s);
✅ 适合:
⚠️ 注意:
toString() 可能返回科学计数法例如:
new BigDecimal("1E+30").toString(); // "1E+30"
如果你明确是整数(无小数部分),可以用 toPlainString():
BigDecimal bd = new BigDecimal("123456789012345678901234567890");
String s = bd.toPlainString();
System.out.println(s);
✅ 特点:
如果 BigDecimal 可能带小数,但你只想要整数:
BigDecimal bd = new BigDecimal("1234567890.999");
String s = bd.toBigIntegerExact().toString();
或允许截断:
String s = bd.toBigInteger().toString();
import java.text.DecimalFormat;
BigDecimal bd = new BigDecimal("1234567890");
DecimalFormat df = new DecimalFormat("#,###");
String s = df.format(bd);
输出:
1,234,567,890
| 场景 | 方法 |
|---|---|
| 任意精度整数 | toPlainString() |
| 可能含小数但只取整数 | toBigInteger().toString() |
| 需要格式化 | DecimalFormat |
| 不确定但想安全 | toPlainString() |
如果你有**“超大整数 / 二进制 / 十六进制 / 避免科学计数法”**等更具体需求,可以告诉我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。