黑马程序员技术交流社区

标题: 关于四舍五入的问题 [打印本页]

作者: flier25    时间: 2016-9-29 21:08
标题: 关于四舍五入的问题
就是判断小数点后面的数是否符合四舍五入的规则,规定不能用math方法,哪位大神协助求解
作者: langyabang1110    时间: 2016-9-29 21:37
这个数加0.5后大于小数点前面的就进一个  这么可以么
作者: hysnxdss    时间: 2016-9-29 21:53
转成字符串,判断小数点后的字符是不是大于等于'5'字符,是就让那个数取整+1
作者: Fate_stay    时间: 2016-9-29 22:24
思路: 取小数点后最后一个数字,判断是否大于等于5 , 如果是, 将小数点前的数字 + 1 返回
作者: 袁袁袁大叔    时间: 2016-9-29 22:51
这不是笔试题么

作者: 袁袁袁大叔    时间: 2016-9-29 22:53
楼上说的都对,不过别忘了负数

作者: IceLoveInFire丶    时间: 2016-9-29 23:21
加0.5 然后强转int
作者: 112345666    时间: 2016-9-30 12:50
哥们,我来教你.稍等啊
[AppleScript] 纯文本查看 复制代码
import java.util.Scanner;

public class Demo_Double {
        /*
         * 1. 自定义一个四舍五入的方法,提示用户输入一个double类型的小数,传入该方法中; 通过判断小数点后第一位数字的大小返回四舍五入后的整数;
         * PS: 不能使用Math类相关方法
         */
        public static void main(String[] args) {
                // 该方法返回的是一个int类型
                int m = fun();
                // 打印这个数
                System.out.println(m);

        }

        @SuppressWarnings("resource")
        public static int fun() {
                // 提示用户输入一个double类型的小数
                Scanner sc = new Scanner(System.in);
                int m;
                System.out.println("请用户输入一个double类型的小数:");
                double d = sc.nextDouble();
                //把一个double的数乘以10再模以10,强转为int类型
                int s = (int) (d * 10 % 10);
                //判断,以5为临界点
                if (s >= 5) {
                        //大于5,四舍五入+1;
                        m = (int) d + 1;
                } else {
                        //否则,返回输入数的本身
                        m = (int) d;
                }
                //返回一个整数
                return m;
        }

}

不要赋值啊,慢慢理解才是关键
能给好评吗?????
对我来说很重要,因为我下次还可能给你解题哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2