将float num=123.0001f,保留两位小数,格式化后返回float类型,如: float num = 123.00f;
请帮忙转下!我格式成String可以保留两位小数,转为float后又变成一位了。怎么处理呢??
请帮忙转下!我格式成String可以保留两位小数,转为float后又变成一位了。怎么处理呢??
解决方案 »
- 我用ButtonGroup的add方法添JRadioButton怎么报错啊
- IO问题,乱码~
- 如何实现两个文本文档(里面包含手机号码)进行交集运算
- 工厂!!!看看为啥空啊。。。。。。。。。。。。。。
- 求用java编写的各个排序法程序加解析,谢谢!
- ==========JAVA正则的问题==========
- java中从键盘输入一个整数也这么麻烦么?
- 怎样用jdom读取utf8格式的xml文件
- 问问问?????
- 紧急求援:如何得到一double型数与一分数之积(结果的小数位数与double型数的小数位数相同)
- 怎样修改JTable中的数据,并写回数据库
- PreparedStatement 的源码在哪里,我想复写executeUpdate()方法;
float num=123.0001f;
num = Float.valueOf(df.format(num));
System.out.println(num);
如果你想在显示的时候有两位,那只要转为String处理就可以了。
df.setMinimumFractionDigits(2);
加上这两句就ok
NumberFormat df = NumberFormat.getInstance(Locale.CHINESE);
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
df.setGroupingUsed(false);
float num = 1120.00243f;
String s =df.format(num);
System.out.println(s);//1120.00
s = (s.substring(s.indexOf("."),s.length())).length()<2 ? s+"0" : s;
System.out.println(s);//1120.00
NumberFormat df = NumberFormat.getInstance();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
df.setGroupingUsed(false);
float num = 1120.00243f;
String s =df.format(num);
System.out.println(s);
String str = String.valueOf(num);
BigDecimal bd = new BigDecimal(str);
System.out.println(bd.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
//你的123.0001f为什么只有1个0,是因为小数点后面都是连续的0。但如果不是连续
的0,是能够输出小数点后2位的。
// TODO Auto-generated method stub
float num=123.0001f;
System.out.printf("%.2f", num);
}