java里怎样让float保留3位小数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里怎样让float保留3位小数相关的知识,希望对你有一定的参考价值。
数据库里保存的float值是0.0346562
保留小数位3位 如0.035后面的四舍五入
我现在只需要让它乘以100 然后加上百分号显示,
System.out.println()出来的值为3.5%
请给出相关代码。 不要告诉我用这个类哪个类.
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位小数的主要内容,如果未能解决你的问题,请参考以下文章
C语言中输出时怎样控制小数点后的位数,请举例说明保留1、2、3、4位小数等等,谢谢