TL;DR

12001.2K1200012,000

缘起

在写一个 Side Project 的时候,我发现,在 Go 生态下似乎没有一个比较好用的数字格式化的包。为了解决将数字变得更加可读,我了解到,实现的方式有以下两种:

  • go-humanize
  • golang.org/x/text/message

这两个包都可以实现将数字按照英文的阅读习惯添加英文逗号。但是,当用户可视区域有限的时候,一个 9,999,000 看起来还是不如 9.9M 看起来让人更加易读,更加容易让用户明确数量级

我在 Github 进行了一批搜索后,确认没有类似的包后,就决定自己写一个了。

bignumber

项目地址: https://github.com/bestony/bignumber

bignumer 是一个用于将数字转换为更加适合人类读取的格式的包。它可以根据开发者的需求,将数字按照英文逗号或更简短已读的方式来输出。

12001,2001200012K

应用场景

在现代的软件开发过程中,我们大多将数据的格式化放在前端进行处理。但也存在一些特殊的场景,需要在服务端进行数据的格式化,比如,为用户发送邮件。在这个时候,你就可以借助于 bignumber 帮你进行数据的格式化处理。

安装

bignumber 采用了 go modules 进行管理,因此,你在安装的时候可以直接在你的 go.mod 中添加相应的版本描述来引用 package

或使用 go get 命令下载

使用

关于这个 package 的使用,你可以参考如下代码

总结

如果你在工作中也遇到了类似的场景,不妨试试这个 package。同时,也欢迎你给这个 Package 提交 issue、pull request 。点击阅读原文,你就可以找到这个包。

Reference

  • go-humanize: https://github.com/dustin/go-humanize