大额数字转节权位

简介: 大额数字转节权位

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

今天在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);
}
相关文章
|
小程序 安全 物联网
nft数字藏品交易平台开发(nft数字艺术品交易平台搭建)
nft数字藏品交易平台开发(nft数字艺术品交易平台搭建)
|
区块链
数字藏品交易NFT系统功能开发解析
数字藏品交易NFT系统功能开发解析
|
开发者
一分钟教你怎么拿到阿里云的数字藏品#阿里云数字藏品合集
阿里云发行了首款数字藏品;历史上架过“阿里云飞天5K纪念碑”、“开发者社区云小宝”、“阿里云第一行代码”、这些数字藏品都是自己的个人资产,特别具有收藏价值,满足自己的收藏爱好。
1514 2
一分钟教你怎么拿到阿里云的数字藏品#阿里云数字藏品合集
|
边缘计算 人工智能 5G
NFT盲盒/数字藏品系统开发详细及分析,NFT数字藏品/盲盒系统开发案例及源码
  Web3.0通过将信息交互从屏幕转移到物理空间,改变了终端用户体验,因而也有称Web3.0为“空间网络(Spatial Web)”。该“空间网络”包括空间交互层(利用智能眼镜或语音等实现实时信息交互)、数字信息层(借助传感和数字映射为每一个对象创建数字孪生)和物理层(通过感观了解和体验的世界)。
|
存储 区块链
数字藏品系统开发怎么样?数字藏品系统开发详情逻辑分析
数字藏品是使用蚂蚁链的区块链技术进行唯一标识的经数字化的特定作品、艺术品和商品,包括但不限于数字画作、图片、音乐、视频、3D模型等各种形式。
数字藏品系统开发怎么样?数字藏品系统开发详情逻辑分析
|
存储 区块链 数据安全/隐私保护
NFT数字藏品流动性质押挖矿开发丨NFT数字藏品流动性质押挖矿系统开发正式版丨NFT数字藏品流动性质押挖矿源码详情
 什么是数字藏品?   所谓数字藏品,其实就是指使用区块链技术,对应特定的作品、艺术品生成唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用,具有可追溯、难以篡改等特点。简单来说,就是这些作品虽然在线上的,没有实体不可摸不可碰,但也具有唯一性特征,具有收藏价值。我们知道,图片,文字,数据是可以在网络上自由复制粘贴的,那怎么能确保收藏品具有唯一性呢?技术的关键就在于NFT。
NFT数字藏品流动性质押挖矿开发丨NFT数字藏品流动性质押挖矿系统开发正式版丨NFT数字藏品流动性质押挖矿源码详情
|
前端开发 API 图形学
3D技术在数字藏品中的应用
本文通过图文的方式详细介绍了在淘宝App中如何使用3D相关技术,优化淘宝App中的数字藏品的展示。从背景介绍、方案设计、模型预处理,模型处理、脚本操作等过过程出发来介绍,同时重点分析了其中的一些核心技术问题的解法。希望通过这篇文章,能够给初次接触 blender 和 unity 的前端开发同学有一定的启发和参考。
172 0
3D技术在数字藏品中的应用
NFT和数字藏品
NFT和数字藏品自制脑图
109 0
NFT和数字藏品
|
算法
怒刷力扣(出现一次的数字)
这个题不熟悉异或的同学可能找不到这个解题的方法。做了这么久的算法,发现很多算法题都能用到数学的方法进行计算,这样说可能不合适,算法本身就是数学的一种解题方法。还是感觉自身掌握的太少了。
159 4
怒刷力扣(出现一次的数字)
|
安全 5G
NFT数字藏品系统丨NFT数字藏品系统开发(详细及方案)丨NFT数字藏品开发源码及案例
 For example,the data collection of the Internet of Things,5G transmission,big data processing,the use of artificial intelligence and the guarantee of blockchain,each technology only completes a part of the life cycle of data elements,and needs larger and more focused concepts,scenarios and business