请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Java 小数保留一位有效数字

[复制链接]
查看: 25|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
74870
发表于 2020-9-16 02:27 | 显示全部楼层 |阅读模式
最近在项目中遇到一个小问题,对小数保留一位有效数字;在这里跟大家分享一下解决方法,如果大家有更好的解决方法欢迎评论指点
  1.     //小数部分取到第一个非0位,并向正上取值    public double getCeilDouble(double number) {        String str = new DecimalFormat("0.0000000000").format(number);        //将number格式化为小数点后面有10位数的小数        String[] fore = str.split("[1-9]", 2);//截取小数前面为0的部分《如:0.0002,取0.000)        String[] split = str.split(".", 2);        //截取小数点后面的部分(包含了小数点)        int aft = Integer.parseInt(split[1].substring(1));    //去除小数点然后转成整数        int len = (aft+"").length();//获取有几位数        aft=(int) Math.ceil(aft/Math.pow(10, len-1));        //最后保留1位(向正取值)        return Double.parseDouble(fore[0]+aft);    }
复制代码
因为需求有效数字我使用的是向上取整,如果需要向下取整或者四舍五入可以将Math.ceil替换成Math.floor或者Math.round

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表