how2j.cn

java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



3分54秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 四舍五入, 随机数,开方,次方,π,自然常数   
步骤 2 : 练习-数学方法   
步骤 3 : 答案-数学方法   
步骤 4 : 练习-质数   
步骤 5 : 答案-质数   

步骤 1 :

四舍五入, 随机数,开方,次方,π,自然常数

package digit; public class TestNumber { public static void main(String[] args) { float f1 = 5.4f; float f2 = 5.5f; //5.4四舍五入即5 System.out.println(Math.round(f1)); //5.5四舍五入即6 System.out.println(Math.round(f2)); //得到一个0-1之间的随机浮点数(取不到1) System.out.println(Math.random()); //得到一个0-10之间的随机整数 (取不到10) System.out.println((int)( Math.random()*10)); //开方 System.out.println(Math.sqrt(9)); //次方(2的4次方) System.out.println(Math.pow(2,4)); //π System.out.println(Math.PI); //自然常数 System.out.println(Math.E); } }
步骤 2 :

练习-数学方法

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
这个图是自然对数的计算方式。
借助Math的方法,把自然对数计算出来,看看经过自己计算的自然对数和Math.E的区别有多大
练习-数学方法
步骤 3 :

答案-数学方法

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

5分49秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


public class HelloWorld { public static void main(String[] args) { System.out.println(Math.E); int n = Integer.MAX_VALUE; System.out.println( Math.pow(1+1d/n,n)); } }
public class HelloWorld {
    public static void main(String[] args) {
    	System.out.println(Math.E);
    	int n = Integer.MAX_VALUE;
    	System.out.println(    	Math.pow(1+1d/n,n));	
    }
}
步骤 4 :

练习-质数

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
统计找出一千万以内,一共有多少质数

质数概念: 只能被1和自己整除的数
举例:
5只能被 1和5整除,所以是质数
8可以被2整除,所以不是质数
练习-质数
步骤 5 :

答案-质数

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

12分50秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


package digit; public class TestNumber { public static void main(String[] args) { int max = 10000*1000; int count = 0 ; for (int i = 1; i <=max; i++) { if(isPrime(i)){ count++; } } System.out.println("一千万以内的质数一共有 : " + count); } private static boolean isPrime(int i) { for (int j = 2; j <= Math.sqrt(i); j++) { if(0==i%j) return false; } return true; } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-01-16 质数问题
srz



请看这段代码,这段代码中 for(int j=2;j<=Math.sqrt(i);j++),j一开始就等于2,然后这样的话i不就最小等于4了吗,这样的话2和3不都被质数排除了吗
private static boolean isPrime(int i) {
        for(int j=2;j<=Math.sqrt(i);j++){
            if(i%j==0){
                return false;
            }
        }
         
        return true;

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-01-03 自然对数次方如果是double型最大值
混口饭吃



如果是double最大值的话结果总是为1,为什么
public class Test {
	public static void main(String[] args) {
		System.out.println(Math.E);
		double x=Double.MAX_VALUE;
		double s=Math.pow(1+1.0/x, x);
		System.out.println(s);
	}
}
2.718281828459045
1.0

							


1 个答案

canhong12 答案时间:2018-01-07
主要是Double类型的精度限制,如果n设置过大的话,1/n就无限趋近于0(即小数点后面有很多个0,以至于后面的有效数字已经无法被内存记录,在内存当中,1/n就等于0.00000000000000),导致1+1/n等于1.00000000000000。这样的话,n次幂以后的结果也还是1。




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-11-27 return问题
2017-11-17 1000*10000以内的质数
2017-11-12 答案多计算1次,1不是质数
2017-10-27 我无论怎么样计算的结果都是1.0
2017-10-26 提供我自己写的贼烂的写法.... 另:1不是质数,2和3是质数
2017-10-06 质数问题
2017-09-03 为什么一千万是用10000*1000表示
2017-08-15 代码把1也算进去了,1不是质数。
2017-08-06 埃氏筛法求素数
2017-07-23 自然对数e的算法
2017-07-20 1+1d/n中的d是什么意思
2017-07-13 作业
2016-09-17 答案多了1,求素数的程序把1也算进去了,1不是素数。
2016-09-07 (int j = 2; j <= Math.sqrt(i); j++)请问这个为什么j小于等于i的开方
2016-08-03 float为什么不可以
2016-07-19 不理解一些 字段。。
2016-06-04 哭瞎,isPrime怎么没列出来呀




提问之前请登陆
关于 JAVA 基础-数字与字符串-数学方法 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 389538688
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图