A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

毕老师留的练习,想不出来,有人做出来了吗

5 个回复

倒序浏览
把楼上的理论 代码化 呵呵!

  1. /*
  2. * 给定一个小数,保留该小数的后两位
  3. */
  4. public class Test2 {
  5.         public static void main(String[] args) {
  6.                 System.out.println(save(3.1415926,2));
  7.         }
  8.        
  9.         public static double save(double d,int i){ // i是想保留几位小数
  10.                 long l = (long) Math.pow(10, i); //10的i次方
  11.                 d = (Math.ceil(d*l))/l; //Math.ceil为四舍五入取整数
  12.                 return d;
  13.         }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  1. import java.math.BigDecimal;
  2. import java.text.NumberFormat;

  3. public class test
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 //方式一(只能用于输出):
  8.                 double d=123.124567;
  9.                 System.out.printf("%9.2f",d);
  10.                 System.out.println();
  11.                 //方式二,通过BigDecimal类:
  12.                 BigDecimal b=new BigDecimal(12345.456645);
  13.                 //使用BigDecimal对象的setScale方法,设置精度为2,且进行四舍五入
  14.                 double b1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
  15.                 System.out.println(b1);
  16.                 //方式三,通过NumberFormat类:
  17.                 //初始化NumberFormat对象
  18.                 NumberFormat nf=NumberFormat.getInstance();
  19.                 //设置需要转换的数据的精度
  20.                 nf.setMaximumFractionDigits(2);
  21.                 //通过format方法转换(返回值为String类型),并通过Double.parseDouble转换为double
  22.                 double d1=Double.parseDouble(nf.format(d));
  23.                 System.out.println(d1);
  24.         }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
谢了 楼上各位
回复 使用道具 举报
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 //DecimalFormat 是一个浮点型格式的对象,java.text.DecimalFormat
  4.                 NumberFormat nf = NumberFormat.getInstance();
  5.                 nf.setMaximumFractionDigits(2);
  6.                 double var = 8.88888;
  7.                 System.out.println(nf.format(var));
  8.         }
  9. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
class MathDemo
{
                public static void main(String[] args)
                {
                        ceshi(23.454242,3);
                }
                //返回一个小数的后两位 double 为小数值 i为保留位数
                public static void ceshi(double d,int i)
        {
                double d1 = d* (Math.pow(10,i));
                //sop(d1);
                System.out.println(Math.round(d1)/(Math.pow(10,i)));
        }
   
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马