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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 请叫我廖小帅 中级黑马   /  2016-11-16 20:16  /  1316 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自定义一个四舍五入的方法,提示用户输入一个double类型的小数,传入该方法中;
         * 通过判断小数点后第一位数字的大小返回四舍五入后的整数
         * ps:不能用Math类相关方法

格式如下 :
         * 请输入一个double类型的小数:
         * 2.5614
         * 四舍五入后的结果:3

求解决思路和代码!!

11 个回复

倒序浏览
是不是可以先对double类型的数强制转换成整型存入中间变量,然后两数相减,大于等于0.5,则加一,小于0.5则不变
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
public static int fun(double n){
        return (int)n+(n*10>=5?1:0);
}
(int)n先获取整数部分,后面n*10获取到小数点后一位的数字,和5比,大于等于5就进1否则不进。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
百分好被过滤了,n*10百分号10
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
大神 好快来解答,我也不会
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
wqq1317 发表于 2016-11-16 21:36
是不是可以先对double类型的数强制转换成整型存入中间变量,然后两数相减,大于等于0.5,则加一,小于0.5则 ...

嗯 键盘录入接收用double类型转换 然后获取小数点后的第一位,再判断是否满足条件,整数部分+1 然后再输出!!我想了一晚上!!!!
回复 使用道具 举报
wj2826 发表于 2016-11-16 22:29
大神 好快来解答,我也不会

我已经研究一晚上 终于研究出来了!!! 你看看下面贴
回复 使用道具 举报


public class Test09 {

        /**
         * 自定义一个四舍五入的方法,提示用户输入一个double类型的小数,传入该方法中;
         * 通过判断小数点后第一位数字的大小返回四舍五入后的整数
         * ps:不能用Math类相关方法
         *
         * 格式如下 :
         * 请输入一个double类型的小数:
         * 2.5614
         * 四舍五入后的结果:3
         */
        public static void main(String[] args) {
               
                 Scanner sc = new Scanner(System.in);
                 System.out.println("请录入一个小数");
                 Double d =sc.nextDouble();
                 String num = d.toString();
                //获取小数点后的第一位
                 int a  =Integer.parseInt(num.substring(num.indexOf(".") + 1 , num.indexOf(".")+2));
                //判断是否满足条件
                 if(a >= 5){
                        //整数部分+1
                         a =Integer.parseInt(num.substring(0,num.indexOf(".")))+1;
                 }else{
                         a =Integer.parseInt(num.substring(0,num.indexOf(".")));
                 }
                 System.out.println("四舍五入的结果:" + a );
                //System.out.println("小输"+ d +"四舍五入的结果:" + a);
                 
        }

}

我研究了一晚上  跟同学们讨论很久!!终于做出了 。
回复 使用道具 举报
转成String,判断小数点后一位大于等于5,则进一咯!!!
回复 使用道具 举报
回复 使用道具 举报
double d; d*=10; if(d%10>=5){System.out.println(d/10+1);}else{System.out.println((int)d/10);}
回复 使用道具 举报
用BigDecimal类行不行?
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马