黑马程序员技术交流社区
标题:
如何保留小数的后两位???
[打印本页]
作者:
sugar
时间:
2014-7-16 09:27
标题:
如何保留小数的后两位???
给定一个小数,保留该小数的后两位,都有哪些方式???
作者:
zeus00456
时间:
2014-7-16 15:55
我感觉这样可以
1.既然是保留两位,那么先加上0.05,用来实现四舍五入
2.你的数据是浮点的嘛,让你的数据*100
3.将数据强制转换成long类型,来实现截掉小数
4.现在,把你的long变成浮点型然后再/100应该就能解决了吧
作者:
ddewym123
时间:
2014-7-16 17:44
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class DoubleTest {
public static void main(String[] args) {
Double d=1.236325;
/*乘以100并强制转换为int型,然后再除以100.0
截取两位小数,不会四舍五入*/
Double d1=(int)(d*100)/100.0;
System.out.println(d);
System.out.println(d1);
//类似上面的,利用Math.round方法
Double d2=Math.round(d*100)/100.0;
System.out.println(d2);
//用DecimalFormat,会四舍五入
DecimalFormat df=new DecimalFormat(".00");
Double d3=Double.parseDouble(df.format(d));
System.out.println(d3);
//利用String的format方法
String str1=String.format("%.2f",d);
Double d4=Double.parseDouble(str1);
System.out.println(d4);
//利用String的substring方法
String str2=d.toString();
str2=str2.substring(0,str2.indexOf(".")+3);
Double d5=Double.parseDouble(str2);
System.out.println(d5);
//利用BigDecimal的setScale方法
BigDecimal bd=new BigDecimal(d);
double d6=bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d6);
}
}
复制代码
作者:
sugar
时间:
2014-7-16 18:47
ddewym123 发表于 2014-7-16 17:44
感觉很详细,太牛了
作者:
郭可
时间:
2014-7-16 23:37
方法很多 我只来混点经验
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2