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保留两位小数:截取 和 四舍五入的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么对double型取两位小数。

Android(java)开发之将double类型,强制保留到小数点后两位解决方法。

java的计算保留N位小数点问题

小数(decimal,double) 截取两位或多位,不四舍五入

java double 类型 怎样截取小数点后4位

使double保留两位小数的多方法 java保留两位小数