Java Web无小数位显示问题怎么解决?

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:17:06
选择的是 不是 是: 54.83871%      不是: 29.032257%          不好说: 16.129032%
怎么让它显示是55% 不是29% 不好说16%
int s1=Integer.parseInt(s);
int bs1=Integer.parseInt(bs);
int bhs1=Integer.parseInt(bhs);
int z=s1+bs1+bhs1;
float s2=((float)s1)/z;
float bs2=((float)bs1)/z;
float bhs2=((float)bhs1)/z;
// DecimalFormat df=new DecimalFormat("#0.00");
// String s3= df.format(s2);
//float s4=Float.valueOf(s3).floatValue();

db.close();
%>
谢谢了!!我用了text包下的DecimalFormat也能实现了!
float s1=Float.valueOf(s).floatValue();
float bs1=Float.valueOf(bs).floatValue();
float bhs1=Float.valueOf(bhs).floatValue();
float z=s1+bs1+bhs1;
float s2=(s1/z)*100;
float bs2=(bs1/z)*100;
float bhs2=(bhs1/z)*100;
DecimalFormat df=new DecimalFormat("#0");
String s3= df.format(s2);
String bs3= df.format

不能用:int s1=Integer.parseInt(s);
要用:double d1=Double.parseDouble("54.83871");
例子程序如下:
import java.util.*;
public class A{
public static void main(String[] args){

try{//String 转成 double 会抛异常
double d1=Double.parseDouble("54.83871");
double d2=Double.parseDouble("29.032257");
double d3=Double.parseDouble("16.129032");
System.out.println("Yes:"+Math.round(d1)+"%");
System.out.println("No:"+Math.round(d2)+"%");
System.out.println("Unknown:"+Math.round(d3)+"%");
}
catch(NumberFormatException e){}
}
}

----------------------------------------
E:\>java A
Yes:55%
No:29%
Unknown:16%

上正解

我想还是有个问题,这应该是一个投票结果吧,所以加起来必须是100%,
如过三个数分别是 54.5%,29.5%,16% 呢?先在加起来为100%,但是经过你的代码处理后: 55%,30%,16% 结果是101%...........<