Java对于浮点数保留小数位数的格式处理(DecimalFormat类)

ok兄弟们, 今天给大家分享一个在数据处理方面比较实用的小技巧——浮点数小数的保留。
话不多说, 我们直接进入正题。
首先, 给大家推荐最好用的一个——DecimalFormat类, 这个类定义在java.text包中, 所以使用的时候我们要进行引入(当然如果你的IDEA已经配置了自动导包就不用麻烦了)

import java.text.DecimalFormat;

与很多类的使用方法相同,DecimalFormat类在进入使用的时候,我们要定义它的对象,我们随机写一个小数, 直接上代码!

double input = 1314.460354;
        DecimalFormat df1 = new DecimalFormat("#.0000000");
        System.out.println(df1.format(input));----//1314.4603540
        DecimalFormat df2 = new DecimalFormat("0.#######");
        System.out.println(df2.format(input));----//1314.460354
        DecimalFormat df3 = new DecimalFormat("##.00");
        System.out.println(df3.format(input));----//1314.46
        DecimalFormat df4 = new DecimalFormat("00.##");
        System.out.println(df4.format(input));----//1314.46
        DecimalFormat df5 = new DecimalFormat("0");
        System.out.println(df5.format(input));----//1314
        DecimalFormat df6 = new DecimalFormat("#");
        System.out.println(df6.format(input));----//1314
        input = 0.35;
        System.out.println(df1.format(input));----//.3500000
        System.out.println(df2.format(input));----//0.35
        System.out.println(df3.format(input));----//.35
        System.out.println(df4.format(input));----//00.35
        System.out.println(df5.format(input));----//0
        System.out.println(df6.format(input));----//0

通过代码, 我们来总结规律:

首先是在整数部分:

‘#’ 在整数部分时, 当整数部分为0, 例如0.35时,它会认为整数部分不存在,就会直接不输出整数部分, 当单个控制格式为 ‘#’ 时,如果整数部分为0, 这个时候就会输出0。

‘0’ 在整数部分时, 就会控制输出我们的所有整数部分(包括0), 当占位不够的时候,它会自动的在我们的整数前面补充0。

那么在小数部分,情况与我们的整数部分类似,但是结论比较好记, 以两位小数 (0.35) 为例:
当出现 ‘#’ 时, 当少于 ‘#’ 的个数 (2) 的时候,有几个写几个,多了就在后面第三位进行四舍五入。
当出现 ‘0’ 时, 当少于 ‘#’ 的个数 (2) 的时候,必须要在后面补0,也就是有几个 ‘0’ , 小数位就有且只有几位,强制性要求, 而多了的话就也在后面第三位进行四舍五入。
整数方面其实更简单,就是有多少位写多少位,等于没有考虑格式限制,一般在进行整数处理的时候我们也用不到格式化。
今天的分享就到这里,respect。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值