java 如何保留小数位的0?(#.##与0.00的区别) 20252297编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

java 如何保留小数位的0?(#.##与0.00的区别)

Created by Marydon on 2023-06-02 11:04

1.情景展示

如上图所示,在java语言中,如果后面的小数位是零的话,会被自动抹除。

但在实际场景中,我们往往需要对小数位进行管理(统一展示小数的位数):

不足小数位的进行补零操作,多余的小数位进行舍弃或者四舍五入。

具体应如何实现?

2.具体分析

通过DecimalFormat.format()方法实现。

3.解决方案

对数值进行格式化的方式有两种,一种是#.##,另一种是0.00。

两者的区别,其实就是#与0的区别,下面进行举例说明。

DecimalFormat.format()返回的是String类型。

#.##

保留两位小数,通常用于被格式的数值,它的小数位明显多于要保留的位数(>2)。

如果,被格式的数值,它的小数位少于要保留的位数(<2),不进行补零操作。

我们可以看到,当小数位较少时,执行的是:舍弃剩余的小数(不四舍五入)。

当小数位很多时,执行的是四舍五入操作。

不知道是怎么回事,应该是java的Double和Float进行计算时出现的损失精度问题。

0.00

保留两位小数,通常用于被格式的数值,它的小数位明显多于要保留的位数(>2)。

如果,被格式的数值,它的小数位少于要保留的位数(<2),进行补零操作。

 

我们可以看到,0与#唯一的区别,就是:

0:当实际小数位不足要保留的位数时,会自动补零,补齐剩余位数;

#:当实际小数位不足要保留的位数时,不补零。

 

方式一:以String的形式存在

方式二:以BigDecimal的形式存在

在java当中,如果想要数值后面的零不消失,并且以数值类型的方式存在,需要将Double或Float类型转换成BigDecimal类型。

但是,Double或Float不能出现,只能以String的形式出现,再String转BigDecimal。

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(2297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2022-06-02 java 调用阿里云短信接口
2017-06-02 js Cookie
2017-06-02 js 根据身份证获取出生日期、性别及年龄
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。