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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flier25 中级黑马   /  2016-9-29 21:08  /  739 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

就是判断小数点后面的数是否符合四舍五入的规则,规定不能用math方法,哪位大神协助求解

7 个回复

倒序浏览
这个数加0.5后大于小数点前面的就进一个  这么可以么
回复 使用道具 举报
转成字符串,判断小数点后的字符是不是大于等于'5'字符,是就让那个数取整+1
回复 使用道具 举报
思路: 取小数点后最后一个数字,判断是否大于等于5 , 如果是, 将小数点前的数字 + 1 返回
回复 使用道具 举报
回复 使用道具 举报
楼上说的都对,不过别忘了负数
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
加0.5 然后强转int
回复 使用道具 举报
哥们,我来教你.稍等啊
[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;
	}

}

不要赋值啊,慢慢理解才是关键
能给好评吗?????
对我来说很重要,因为我下次还可能给你解题哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马