java里怎样让float保留3位小数

数据库里保存的float值是0.0346562
保留小数位3位 如0.035后面的四舍五入
我现在只需要让它乘以100 然后加上百分号显示,
System.out.println()出来的值为3.5%
请给出相关代码。 不要告诉我用这个类哪个类.

第1个回答  2008-09-18
有一个方法很简单,保留三个小数,就是乘以1000(10的3次方),取整,再除以1000

float f = (int)Math.round(0.0346562*1000)/1000f; //(注:f表示float,省了会错)

System.out.println(f*100+"%");
第2个回答  2008-09-18
import java.text.NumberFormat;
import java.text.ParseException;

class TestNumberFormat{
public static void main(String[] args){
try{
float data = 0.0345f;
NumberFormat famatter = NumberFormat.getNumberInstance(java.util.Locale.CHINA);
famatter.setMaximumFractionDigits(3);
String sData = famatter.format(data);
System.out.println(sData);
float value = famatter.parse(sData).floatValue();
System.out.print(value);
}catch(ParseException e){
e.printStackTrace();
}
}
}

或是输出是设置System.out.printf("%.3f",0.01235);
第3个回答  2008-09-18
System.out.printf("%.3f",0.034652);

输出的时候控制一下就行了!
第4个回答  2008-09-18
protected static String result(float f){
double f1=f*1000;
int i=(int)Math.rint(f1);
String str1=String.valueOf(i);
int lenth=str1.length();
StringBuffer sb=new StringBuffer();
sb.append(str1.substring(0,lenth-1)).append(".").append(str1.substring(lenth-1,lenth)).append("%");
return sb.toString();
}
第5个回答  推荐于2016-08-10
public class Test {
public static void main(String[] args) {
double a=0.0346562 ;
float b=Math.round(a*1000);
System.out.println(b/10+"%");
}
}
------
结果:3.5%本回答被提问者采纳
相似回答