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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里怎样让float保留3位小数相关的知识,希望对你有一定的参考价值。

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

参考技术A 有一个方法很简单,保留三个小数,就是乘以1000(10的3次方),取整,再除以1000

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

System.out.println(f*100+"%");
参考技术B 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);
参考技术C System.out.printf("%.3f",0.034652);

输出的时候控制一下就行了!
参考技术D 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%本回答被提问者采纳

Java float保留两位小数或多位小数

 

方法1:用Math.round计算,这里返回的数字格式的.

1
2
3
4
float price=89.89;
int itemNum=3;
float totalPrice=price*itemNum;
float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000

 方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位,小数精度.科学计算.

1
2
3
float price=1.2;
DecimalFormat decimalFormat=new DecimalFormat(".00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
String p=decimalFomat.format(price);//format 返回的是字符串

 第二种方式是字符串格式的.

以上是关于java里怎样让float保留3位小数的主要内容,如果未能解决你的问题,请参考以下文章

python中怎样保留两位小数

怎样在c语言除法中保留小数点?

在C++中怎样使输出值保留三位小数

C语言中输出时怎样控制小数点后的位数,请举例说明保留1、2、3、4位小数等等,谢谢

VBA里怎么把Double类型保留1位小数,不四舍五入,如3.7777=3.7 ,456.666=456.6

怎样保留小数点后六位,六位以后不四舍五入?