在JSP程序中两个 float型的数:0.88 , 16.5 相乘 等于 14.5199995 ,为什么不是14.52
解决方案 »
- 使用JFreeChart出现点问题
- 关于类的简单问题,看了再说!急!!!
- 急,在线等,关于保存为.csv文件 中换行的问题
- 为什么javascript的语句可以直接写在jsp中
- jquery ajax进入error ,http状态码为 12031 ,怎么解决
- 请教!!
- 新手求助,JSP中怎样把System.out的标准输出打到Tomcat的log里去?
- JSP程序分析
- 大家看看我用jsp做的个人网站,请多提意见!
- minij2ee v2.1 beta1正式发布
- 谁能帮我把4行JavaScript代码改成JSP代码.谢谢....
- 跪求《Java专业编程指南》(电子工业出版社 Brett Spell著)一书的源代码
{
DecimalFormat df = new DecimalFormat("#.00");
public static void main(String k[]){
fnum f = new fnum();
}
public fnum(){
StringBuffer d = new StringBuffer("");
df.format(1123.33333,d,new FieldPosition(2));
System.out.println(d);
}}
テストして下さい
class frm extends JFrame
{JLabel label=new JLabel("OK");
double val = 34.232323,ret;
frm()
{this.getContentPane() .add(label) ;
//方法一
ret=Math.round(val*100);//因为round返回long型,所以要将他转换为double
ret/=100;//要一步一步做(类型经过了转换)
//方法二
BigDecimal b = new BigDecimal(val);//这种好
ret= b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() ;
label.setText(String.valueOf(ret).toString()) ;
}
}
import java.math.*;
……
方法1:
float f = 34.232323;
BigDecimal b = new BigDecimal(f);
float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
// b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数
方法2:
float scale = 34.236323;
DecimalFormat fnum = new DecimalFormat("##0.00");
String dd=fnum.format(scale);
System.out.println(dd);
import java.math.BigDecimal
http://www.21codes.com/edu/pr/Java/620/2005/11/26/edu_75814.html
有好的方法
用round不是很好