前言
在项目开发中发现当Double类型的小数整数部分超过8位时,会自动转换为科学计数来展示,这肯定是不符合需求的,通过下面的方法可轻松搞定科学计数的问题,并进行保留2位小数与去除无用0的处理。
解决方法
抽出一个文本格式化工具类TextFormatUtil。123456789101112public class TextFormatUtil { private static DecimalFormat mDecimalFormat = new DecimalFormat("0.##"); /** * 格式化小数 * 保留两位,并做位数过大处理 */ public static String formatDouble(double number) { if (number != 0.00) return mDecimalFormat.format(number); else return "0"; }}
使用时直接调用即可:TextFormatUtil.formatDouble(formatNumber)
。简单解释一下,DecimalFormat是由Java提供的用于对十进制数字进行格式化的工具,按照符号进行填充,区分整数部分与小数部分:
- 整数:从个位向高位填充,若位上有值则为原来的值,无值则看符号,符号为“0”则以“0”填充,符号为“#”则空着不填充。
- 小数:符号为“0”或者“#”的个数都代表保留小数点后的几位,区别是“0”代表小数不足的部分以“0”填充,“#”代表小数不足的部分空着不填充。
当然DecimalFormat还有更多的符号用法,需要的大家自行百度啦,这里就不赘述了。
总结
博客好久没更新了,近期准备整理一下平时遇到的常见问题分享出来,有问题的话欢迎大家指正。