Android double保留两位小数:截取 和 四舍五入
Posted Android移动开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android double保留两位小数:截取 和 四舍五入相关的知识,希望对你有一定的参考价值。
方式一:
BigDecimal.setScale()方法用于格式化小数点 setScale(2);//表示保留2位小数,默认用四舍五入方式
setScale(2,BigDecimal.ROUND_DOWN);//直接删除多余的小数位 11.116约=11.11
setScale(2,BigDecimal.ROUND_UP);//临近位非零,则直接进位;临近位为零,不进位。11.114约=11.12
setScale(2,BigDecimal.ROUND_HALF_UP);//四舍五入 2.335约=2.33,2.3351约=2.34 setScaler(2,BigDecimal.ROUND_HALF_DOWN);//四舍五入;2.335约=2.33,2.3351约=2.34,11.117约11.12 注:原因是,计算机解析一个浮点数据时,和原始数据有偏差,如: 2.335 =2.33499999999999996447286321199499070644378662109375; 2.3350=2.33499999999999996447286321199499070644378662109375; 2.3351=2.335100000000000175504055732744745910167694091796875 疑问:ROUND_HALF_UP和ROUND_HALF_DOWN的差别? 注释: 1: scale指的是数据的小数点后的位数。比如123.456则scale就是3.
scale()是BigDecimal类中的方法。
比如:BigDecimal b = new BigDecimal("123.456"); b.scale(),返回的就是3.
2:
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!
方式二:(舍入方式?)
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");df.format(你要格式化的数字);
new java.text.DecimalFormat("#.00").format(3.1415926)
#.00 表示两位小数 #.0000四位小数 以此类推...
方式三:(舍入方式?)
double d = 3.1415926;String result = String .format("%.2f");
%.2f %.表示小数点前任意位数;2表示两位小数;格式后的结果为f 表示浮点型
//下面方式未验证
方式四:
复制代码代码如下:NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits)
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的
import java.text.* ;
import java.math.* ;
class TT
public static void main(String args[])
double x=23.5455;
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
ddf1.setMaximumFractionDigits(2);
String s= ddf1.format(x) ;
System.out.print(s);
import java.text.*;
DecimalFormat df=new DecimalFormat(".##");
double d=1252.2563;
String st=df.format(d);
System.out.println(st);
以上是关于Android double保留两位小数:截取 和 四舍五入的主要内容,如果未能解决你的问题,请参考以下文章
Android(java)开发之将double类型,强制保留到小数点后两位解决方法。