计算得到的Double型小数点后位数太长了,如何修改它的精度只保留到小数点后两位?

qf103 2004-03-18 08:27:04
Double型数小数点后位数太长了,如何修改它的精度?比如,对计算的结果只想四舍五入保留到小数点的后2位。用字符串转换也行只是太麻烦了点,java中有没有现成的方法作这个转换?
...全文
1180 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
swj_20 2004-03-19
  • 打赏
  • 举报
回复
to 79cy:
可以四舍五入呀
79cy 2004-03-19
  • 打赏
  • 举报
回复
两种都不错,不过第二钟好像是舍尾的,不是四舍五入.
swj_20 2004-03-19
  • 打赏
  • 举报
回复
public class test{
public static void main(String[] args){
float f=12.3372f;
java.text.DecimalFormat deFormat =new java.text.DecimalFormat("##.##");
String a=deFormat.format(f);
System.out.println(a);
}
}
fefang2003 2004-03-19
  • 打赏
  • 举报
回复
GOOD!
Studying!
kaphoon 2004-03-19
  • 打赏
  • 举报
回复
DecimalFormat
好用
yangFrame 2004-03-19
  • 打赏
  • 举报
回复
java.text.DecimalFormat 个人觉得比较好一些
muymuy 2004-03-18
  • 打赏
  • 举报
回复

Math.round()可以进行四舍五入运算,不过,它只能对小数点后第1位进行四舍五入运算.这应该足够了,只要你灵活运用,也可是实现对小数点后任意位数的四舍五入运算.

//MathDemo.java
public class MathDemo {
public static void main(String args[]) {
float f = 125.5355f;

System.out.println(f);

System.out.println(round(f, -1));

System.out.println(round(f, 1));

System.out.println(round(f, 2));
}

/**
* 四舍五入方法
*
* @param f 需要进行四舍五入的数
* @param i 保留小数的位数,负数代表舍去整数的个数
*/
public static float round (float f, int i) {
float t = (float)Math.pow(10, i);
return (Math.round(f * t)) / t;
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧