11.3
来源:互联网 发布:三星s4支持3g网络吗 编辑:程序博客网 时间:2024/06/05 15:31
JavaScript 编程题
解释一下下面代码的输出。
console.log(0.1 + 0.2); //0.30000000000000004
console.log(0.1 + 0.2 == 0.3); //false
JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如1/2,1/8,1/1024,每个浮点数占64位。但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差。
由于采用二进制,JavaScript 也不能有限表示 1/10、1/2 等这样的分数。在二进制中,1/10(0.1)被表示为 0.00110011001100110011…… 注意 0011 是无限重复的,这是舍入误差造成的,所以对于 0.1 + 0.2 这样的运算,操作数会先被转成二进制,然后再计算:
0.1 => 0.0001 1001 1001 1001…(无限循环)
0.2 => 0.0011 0011 0011 0011…(无限循环)
双精度浮点数的小数部分最多支持 52 位,所以两者相加之后得到这么一串 0.0100110011001100110011001100110011001100…因浮点数小数位的限制而截断的二进制数字,这时候,再把它转换为十进制,就成了 0.30000000000000004。
对于保证浮点数计算的正确性,有两种常见方式。
一是先升幂再降幂:
function add(num1, num2){
let r1, r2, m;
r1 = (”+num1).split(‘.’)[1].length;
r2 = (”+num2).split(‘.’)[1].length;
m = Math.pow(10,Math.max(r1,r2));
return (num1 * m + num2 * m) / m;
}
console.log(add(0.1,0.2)); //0.3
console.log(add(0.15,0.2256)); //0.3756
二是是使用内置的 toPrecision() 和 toFixed() 方法, 注意,方法的返回值字符串。
function add(x, y) {
return x.toPrecision() + y.toPrecision()
}
console.log(add(0.1,0.2)); //”0.10.2”
MySQL 编程题
表名 student_score
name course score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
查询出「张」姓学生中平均成绩大于 75 分的学生信息。
select * from student_score where name in (select name from student_score group by name having min(score)>75);
Java 编程题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
public class Test {public static void main(String[] args){System.out.println(f(10));}public static int f(int n){if(n == 1){return 1;}else{return (f(n-1)+1)*2;}}}
- 11.3
- 11.3
- 11.3
- 11.3
- 11.3
- 11.3
- 11.3.1
- 11.3.2
- 11.3.4
- 11.3.5
- 11.3.6
- Reflcetion2017.11.3
- 考试 11.3
- 11.3dairy
- STK 11.3 with EOIR 11.3试用
- 11.3 Boxing and unboxing
- 11.3 吃饭问题
- 11.3 PKCS标准
- 定义与声明的区别
- Lucene基本语法
- sshError:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorl
- Java 学习感受
- opencv(c++)基本绘图
- 11.3
- Linux文件打包与压缩
- three.js 02-04 之网格对象函数及属性
- LeetCode-Kth Largest Element in an Array
- python的读取纯文本文件的几种模式
- 算法---最小公倍数和最大公约数
- html表格基础及案例示图代码。
- 数据结构-Java实现【整理】
- Material Design学习之悬浮按钮——FloatingActionBar(3)