博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字格式化NumberFormat
阅读量:4310 次
发布时间:2019-06-06

本文共 800 字,大约阅读时间需要 2 分钟。

做财务的同学遇到逗号分隔的数值格式,会用到NumberFormat类格式化数据

BigDecimal bigDecimal = new BigDecimal("1000000000.4110001");

NumberFormat instance = NumberFormat.getInstance(Locale.US);

System.out.println(instance.format(bigDecimal));

非常简便,但是会失去精度,得到的结果是:1,000,000,000.411,如果这样足够项目里的场景就可以了,下面介绍一种方法可以保留精度的格式数据。

 

 

private String parseMoney(String str) {

String num = "";
String decimalNum = "";
StringBuffer ret = new StringBuffer();
if (str.contains(".")) {
String[] temp = str.split("\\.");
num = temp[0];
decimalNum = temp[1];
} else {
num = str;
}

if (num.length() > 3) {

for (int i = num.length() - 1; i >= 0; i--) {
ret.append(num.charAt(i));
if ((num.length() - i) % 3 == 0) {
ret.append(",");
}
}

return ret.reverse().toString() + "." + decimalNum;

}
return str;
}

转载于:https://www.cnblogs.com/nunuAction/p/5853953.html

你可能感兴趣的文章
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>