一、Math

Math.round //对一个数四舍五入Math.round(11.6) = 12;Math.round(-11.6) = -12;
Math.round(-0.1) = 0;Math.round(0.1) = 0;如果出现向上向下距离一样的数值
例:
Math.round(11.5) ,首先与 11.5最接近的有两个整数 11 和 12,取较大的那个,结果就是12;
Math.round(-11.5),首先与 -11.5最接近的有两个整数 -11 和 -12,取较大的那个,结果就是-11;
Math.floor //对一个数向下取整floor的英文意义是地板,该方法就表示向下取整,
所以,
Math.floor(11.6)的结果为11,
Math.floor(-11.6)的结果是-12;
Math.ceil //对一个数向上取整ceil的英文意义是天花板,该方法就表示向上取整,
所以,
Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;

Math.pow(a,b) //a为底数,b为几次方

二、保留小数点后的位数

例如:保留小数点后两位

1、使用String的format方法,语法“String.format(“%.2f”,数值)”;String的format方法(推荐)double f = 111231.5585;System.out.println(String.format("%.2f", f));System.out: 111231.56

2、用DecimalFormat的format方法;
DecimalFormat的format方法double f = 111231.5585;DecimalFormat df = new DecimalFormat("#.00");            System.out.println(df.format(f));System.out: 111231.56保留1位小数
double f = 111231.5585;DecimalFormat df = new DecimalFormat("#.0");            System.out.println(df.format(f));System.out: 111231.6保留1位小数,当小数点后的小数为0的时候省略
double f = 100.0;DecimalFormat df = new DecimalFormat("#.#");            System.out.println(df.format(f));System.out: 100

3、使用BigDecimal的setScale方法;double f = 111231.5585;BigDecimal bg = new BigDecimal(f);double f1 = bg.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();System.out.println(f1);System.out: 111231.56
4、使用Formatter 的format类double f = 111231.5585;Formatter formatter = new Formatter();// %.2f % 表示 小数点前任意位数 2 表示两位小数 格式后的结果为 f 表示浮点型Formatter f1 = formatter.format("%.2f", f);System.out.println(f1);System.out: 111231.56
5、通过运算double f = 111231.5585;long l =(long)(f*100) ;double d = l/100D;System.out.println(d);System.out: 111231.55
6、使用 NumberFormat 类double f = 111231.5585;NumberFormat nf = NumberFormat.getNumberInstance();nf.setMaximumFractionDigits(2);/*
* setMinimumFractionDigits设置成2
* 如果不这么做,那么当value的值是100.00的时候返回100
* 而不是100.00*/
nf.setMinimumFractionDigits(2);
/*
* 如果想输出的格式用逗号隔开,可以设置成true*/nf.setGroupingUsed(false);String format = nf.format(f);System.out.println(format);System.out: 111231.56

三、去除double多余的0

/*** 去除double多余的0(格式化为##.##)*/
public static String formatDouble(double num) {DecimalFormat df = new DecimalFormat("##.##");return df.format(num);
}

四、小数点向后移动两位

例如:EditText输入的价格元转换为分1.25 -> 125(et_price.text.toString().trim().toFloat()) * 100(et_price.text.toString().trim().toDouble()) * 100这两种转换会有异常建议使用以下方法:BigDecimal(et_price.text.toString().trim()).movePointRight(2).intValueExact()或者 /*** 将单位为元的金额转换为单位为分** @param yuan 单位为元的字符型值* @return*/public static int yuan2Fen(String yuan) {int value = 0;try {BigDecimal var1 = new BigDecimal(yuan);BigDecimal var2 = new BigDecimal(100);BigDecimal var3 = var1.multiply(var2);value = Integer.parseInt(var3.stripTrailingZeros().toPlainString());} catch (Exception e) {throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));}Assert.isTrue(value >= 0, String.format("非法金额[%s]", yuan));return value;
}

Android数据的处理(四舍五入、保留小数点后的位数)相关推荐

  1. java 常用四舍五入保留小数点后两位方法

    java 常用四舍五入保留小数点后两位方法 1 . Math.round double num = Math.round(5.2544555 * 100) * 0.01; System.out.pri ...

  2. java 四舍五入保留小数点后两位

    方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND ...

  3. js除法四舍五入保留小数点后两位写法

    原文连接 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> &l ...

  4. python四舍五入保留小数点后三位_Python中的“正确”四舍五入到小数点后3位

    我可能遗漏了一些重要的东西,但我无法找到一种方法来在Python(2.7)中将浮点/小数"适当"舍入,至少舍入到小数点后三位.我的意思是1.2225应该四舍五入到1.223,而1. ...

  5. c保留小数点后三位数没有则为0_C语言中……“计算结果保留三位小数。”怎么表示?...

    展开全部 printf("%7.3f",100/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第e69da5e6ba9062616964757a6869646 ...

  6. Java面试题,java四舍五入保留小数点后四位

    分享第一份Java基础-中级-高级面试集合 Java基础(对象+线程+字符+接口+变量+异常+方法) Java中级开发(底层+Spring相关+Redis+分布式+设计模式+MySQL+高并发+锁+线 ...

  7. c++保留小数点后三位数_C++保留有效位与保留小数位

    如果想要保留n位小数 根据C++官网上的解释,该函数没有指定的返回类型,并且该函数用于设定输出操作上的小数精确位. 然后返回值中解释:未指定返回值,这个函数仅用于数据流修改操作上. 说了这么多,我想要 ...

  8. 微信小程序 之wxml保留小数点后两位数的方法及转化为字符串的方法

    原理:wxml中不能直接使用较高级的js语法,如'.toFixed','toString()',但可以通过引入wxs模块实现效果. 第一步:新建 filter.wxs 文件 var filters = ...

  9. c保留小数点后三位数没有则为0_哪位老师整理的,这么齐全?赶紧存下为孩子期末考试助力...

    在小学阶段,孩子的数学学习是从数字开始的.从简单的1-10,然后扩充到100.1000,从简单的加法到计算难度增加的乘除法,孩子从扳手指到运用九九乘法表,孩子的计算能力要求是随着学龄增加而增加的. 不 ...

最新文章

  1. 百度CTO王海峰获“光华工程科技奖”,深耕自然语言处理近30年
  2. 谷歌自动驾驶是个大坑,还好中国在构建自己的智能驾驶大系统
  3. C# 3.X -- the newest features
  4. VTK:图片之ImageDilateErode3D
  5. Hybris commerce里用web service为什么查询不到产品的描述信息
  6. 从入门到精通!java可视化编程软件哪个好
  7. span 里面的文字不显示_“无糖饮料”显示不含糖,为何还这么甜?原来里面加了这个...
  8. C/C++ queue队列的理解以及使用
  9. 生成clr库_如何使用CLR存储过程发送数据库邮件
  10. 深入浅出WPF(一)
  11. Java技术栈(跳槽,面试必备)
  12. suger BI 创建任务
  13. 购买腾讯云服务器流程
  14. java系统开发注意事项
  15. JZOJ 1008 1010
  16. Android-Notes|BottomNavigationView-爱上-Lottie,android高级开发面试题
  17. linux怎么用命令期启动ngrok,ngrok 开机启动设置
  18. 单机模式运行hadoop,来自《Hadoop权威指南》
  19. openwrt.img固件转EXSI硬盘文件(超详细)
  20. 菜鸟教程—SQL测验

热门文章

  1. js获取当前应用根路径contextPath完美方案
  2. 用Python代码连接并控制Excel表格,从此办公自动化,解放你双手
  3. java费布拉切数列前40个数_布拉切是哪人 cba布拉切工资多少
  4. “超级血狼月”震撼登场!快看史诗级的三合一天文奇观
  5. Oracle Freelist和HWM原理及性能优化
  6. 记录-java如何播放mp3音频的
  7. MP3/WAV 播放
  8. tgp饥荒服务器mod文件在哪,《饥荒》TGP联机版如何上传MOD图文详细攻略
  9. 给docker中的ubuntu系统安装桌面程序
  10. 视频教程手把手教你学Photoshop