-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1-06(Number64비트부동소수점).html
34 lines (27 loc) · 1.37 KB
/
1-06(Number64비트부동소수점).html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<title>Number 64bit 부동소수점</title>
</head>
<body>
<script>
let x = 0.1 + 0.2; // 무한소수는 자린수 처리해주어야함.
console.log(x); // 0.30000000000000004
console.log(1/2); // 유한소수
console.log(2/3); // 무한소수
console.log(1/10);
console.log((0.1).toString(2)); // 0.0001100110011001100110011001100110011001100110011001101
console.log((0.2).toString(2)); // 0.001100110011001100110011001100110011001100110011001101
console.log(parseInt('0100110011001100110011001100110011001100110011001100111', 2) * Math.pow(2, -55));
// 부동소수점 연산에는 외부 라이브러리를 활용
// BigNumber.js
// Big.js
// Decimal.js
// js는 64비트 사용, 무한 소수는 64비트 넘어가 끝에가 짤림 => 원하는 값과 다른 값이 나올 수 있다.Math그래서 우리는 외부라이브러리를 사용함
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 : js에서 안정적으로 지원해주는 정수 최대 자리(16자리)
let x2 = 999999999999999;
console.log(x2); // 정상적으로 출력함.
let x3 = 9999999999999999;
console.log(x3); // 에러 발생은 하지 않지만 이상한 값 출력(자리수 벗어남)
</script>
</body>
</html>