黑马程序员技术交流社区
标题:
如何保留float数小数点后两位
[打印本页]
作者:
王双宝
时间:
2012-7-12 13:48
标题:
如何保留float数小数点后两位
如何保留float数小数点后两位?我使用的方法如下:
public class Main {
public static void main(String[] args){
float f=(float)Math.random()*10;
// f=1234565;
System.out.println(FormatFloat.format(f,2));
}
}
class FormatFloat{
public static float format(float f,int index){
String str=String.valueOf((new BigDecimal(f)).setScale(index,BigDecimal.ROUND_HALF_UP));
return Float.parseFloat(str);
}
}
但是这种存在一个问题,当f=123456是,打印出的是123456.0,只保留到小数点后一位。怎么才能打印出的是123456.00?求解。
作者:
王亚飞
时间:
2012-7-12 14:18
两种方法:
import java.math.*;
……
方法1:
float f = 34.232323;
BigDecimal b = new BigDecimal(f);
float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
// b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数
方法2:
float scale = 34.236323;
DecimalFormat fnum = new DecimalFormat("##0.00");
String dd=fnum.format(scale);
System.out.println(dd);
作者:
王亚飞
时间:
2012-7-12 14:18
不知道能不能帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2