ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

BigDecimal转字符串方法toString(),toPlainString(),toEngineeringString()区别

BigDecimal转字符串方法toString(),toPlainString(),toEngineeringString()区别 一. 先说结论源码方法注释为:toPlainString() : 返回此 BigDecimal 的字符串表示形式不带指数字段。toString() 返回此 BigDecimal 的字符串表示形式如果需要指数则使用科学记数法。toEngineeringString()返回此 BigDecimal 的字符串表示形式如果需要指数则使用工程记数法。二. 示例验证publicstaticvoidmain(String[]args){BigDecimalbigDecimalnewBigDecimal(0.0000000001);System.out.println(bigDecimal.toPlainString());//0.0000000001System.out.println(bigDecimal.toString());//1E-10System.out.println(bigDecimal.toEngineeringString());//100E-12}三. 注意事项toString() 或 toEngineeringString() 方法转换的字符串有不确定性, 在数值特别大或特别小的时候可能会以指数形式表示, 因此在需要全数字处理的场景下可能会出现问题, 如始终需要原样输出数字时建议使用 toPlainString() .工程计数法: 将数值表示为1到1000之间的系数 (不含1000) 与10的3倍次幂的乘积, 例如2700写为2.7×10³.
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进