大额数字转节权位

简介: 大额数字转节权位

一花凋零,荒芜不了整个春天。——巴尔扎克

今天在hutool提交了个PR

https://gitee.com/dromara/hutool/pulls/536

NumberChineseFormatter.formatSimple,用于将阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 =》 -5.56万

代码如下:

/**
 * 阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 =》 -5.56万
 *
 * @param amount 数字
 * @return 中文
 */
public static String formatSimple(long amount) {
  if (amount < 1_0000 && amount > -1_0000) {
    return String.valueOf(amount);
  }
  String res;
  if (amount < 1_0000_0000 && amount > -1_0000_0000) {
    res = NumberUtil.div(amount, 1_0000, 2) + "万";
  } else if (amount < 1_0000_0000_0000L && amount > -1_0000_0000_0000L) {
    res = NumberUtil.div(amount, 1_0000_0000, 2) + "亿";
  } else {
    res = NumberUtil.div(amount, 1_0000_0000_0000L, 2) + "万亿";
  }
  return res;
}

测试用例如下:

@Test
public void formatSimpleTest() {
  String f1 = NumberChineseFormatter.formatSimple(1_2345);
  Assert.assertEquals("1.23万", f1);
  f1 = NumberChineseFormatter.formatSimple(-5_5555);
  Assert.assertEquals("-5.56万", f1);
  f1 = NumberChineseFormatter.formatSimple(1_2345_6789);
  Assert.assertEquals("1.23亿", f1);
  f1 = NumberChineseFormatter.formatSimple(-5_5555_5555);
  Assert.assertEquals("-5.56亿", f1);
  f1 = NumberChineseFormatter.formatSimple(1_2345_6789_1011L);
  Assert.assertEquals("1.23万亿", f1);
  f1 = NumberChineseFormatter.formatSimple(-5_5555_5555_5555L);
  Assert.assertEquals("-5.56万亿", f1);
  f1 = NumberChineseFormatter.formatSimple(123);
  Assert.assertEquals("123", f1);
  f1 = NumberChineseFormatter.formatSimple(-123);
  Assert.assertEquals("-123", f1);
}
相关文章
|
存储 关系型数据库 MySQL
MySQL中varchar的最大长度是多少
MySQL中varchar的最大长度是多少
1168 0
|
Java Maven
Maven 3.8.1 报错 Blocked mirror for repositories
Maven 3.8.1 报错 Blocked mirror for repositories
1293 0
Maven 3.8.1 报错 Blocked mirror for repositories
|
6月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
368 27
|
8月前
|
人工智能 自然语言处理 Java
30分钟速成:IntelliJ IDEA 2024下载安装与多语言开发环境配置手册
IntelliJ IDEA是Java/Kotlin开发领域的旗舰级IDE,最新版本实现了AI全栈辅助、量子计算插件和多语言互操作三大技术突破。AI辅助提升代码生成与性能优化准确率40%,量子计算插件支持1024量子位模拟,多语言混合调试性能提升300%。系统要求包括i5以上CPU、8GB内存及Windows 7+等。安装流程涵盖获取Ultimate版、配置启动器及性能优化设置。核心功能包括AI编码助手和多语言开发环境配置。提供量子算法开发和AI代码审查实战案例,并附故障排查指南和学习资源。
Vue3使用Mitt中央事件总线实现组件之间通讯(发布订阅库)
Vue3使用Mitt中央事件总线实现组件间的发布订阅通信,替代了Vue2中已移除的EventBus。
1284 0
|
12月前
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
1765 5
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
SQL 缓存 安全
深入解析MyBatis-Plus LambdaQueryWrapper与QueryWrapper:高效数据查询的秘密
深入解析MyBatis-Plus LambdaQueryWrapper与QueryWrapper:高效数据查询的秘密
13471 2
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
这篇文章详细介绍了10款IntelliJ IDEA的高效插件,包括Codota代码智能提示、Key Promoter X快捷键提示、CodeGlance代码缩略图、Lombok代码简化、阿里巴巴代码规范检查、SonarLint代码质量检查、Save Actions格式化代码、Translation翻译、Rainbow Brackets彩虹括号和Nyan Progress Bar彩虹进度条插件,旨在帮助提升开发效率和代码质量。
2022年最新最详细的IntelliJ idea高效插件的介绍安装,让你的工作效率提升10倍
|
12月前
|
算法 安全 物联网
关于SM2、SM3、SM4、SM9这四种国密算法
本文介绍了四种国密算法——SM2、SM3、SM4和SM9。SM2是一种基于椭圆曲线的非对称加密算法,用于数据加密和数字签名;SM3是哈希算法,用于数字签名和消息完整性验证;SM4是对称加密算法,用于数据加密和解密;SM9是基于标识的非对称密码算法,适用于物联网环境中的数据安全和隐私保护。
8326 0
|
安全 开发工具 git
git合并错了,我想回退到之前的版本
git合并错了,我想回退到之前的版本