[JS] 산술연산자

JG HAN·2022년 9월 12일
0

JS

목록 보기
5/8

Undefined -> NaN
Null -> +0
Bollean-> true:1, false:0
String -> 값이 숫자이면 숫자로 연산, 단 더하기는 연결

var value;
console.log(10 + value); //NaN
console.log(10 + null);  // 10
console.log(10 + true);  //11
console.log(10 + false);  //10
console.log(10 + "123");  // 10123
console.log(123 - "23");  //100

* 연산자

  • 양쪽의 평가결과가 하나라도 숫자가 아닐때 NaN 반환한다.
console.log(10 * "20"); //200
console.log(10 * true); //10
console.log(10 * false); //0
console.log(10 * null); //0
console.log(10 * "A"); //NaN
  • 소수 값이 생기는 경우 처리
console.log(2.3 * 3); //6.8999999999999995

1) 6.9로 출력되지 않는다.
2) 이는 정상이며 IEEE 754 유동 소수점 처리 때문
3) 대응방법

  • 실수를 정수로 변환하여 값을 구하고 -> 다시 정수를 실수로 변환한다.
console.log(2.3*10 * 3 /10); //6.9

/ 연산자

  • NaN 반환
    • 분모, 분자 모두 0일 때
    • 양쪽의 평과 결과가 하나라도 숫자가 아닐 때
console.log(0 / 0); //NaN
console.log(4 / "A"); //NaN
  • 분모, 분자가 0일 때
    • 분모가 0 이면 Infinity 반환
    • 분자가 0이면 0 반환
console.log(4 / 0); //Infinity
console.log(0 / 4); //0

% 연산자

console.log(5 % 2.3); //0.40000000000000036
console.log((5*10 - (2*2.3*10))/10); //0.4
  • 소수 끝에 36이 있는 것은 IEEE 754의 유동 소수점 처리 때문
  • 실수를 정수로 변환하여 연산하고 다시 정수를 실수로 변환

0개의 댓글