알고리즘 문제를 푸는데, 숫자의 모든 자리의 수를 더하는 문제가 나왔다.
while(number > 0){
sum+=number%10;
number/=10;
}
C++을 생각하고 이렇게 작성했는데, 문제가 발생했다.
C++은 자료형이 아예 정수형과 실수형이 나뉘어져있는데,
javascript는 둘의 구분이 없이 Number라는 자료형으로 통일되어 있어서, C++과 다르게 나누기를 하다보면,
정수에서 실수로 바뀌어서, 정확히 말하면 소수점이 발생하여 문제가 발생했다.
따라서 이 문제를 해결하기 위해서는 계산할 때, 소숫점을 버리면 문제가 해결되었다.
그 방법은
숫자를 var number = 1.6 이라고 하면
올림
Math.ceil(number)
= 2
내림
Math.floor(number)
= 1
반올림
Math.floor(number)
= 2
반응형
'Coding > JavaScript' 카테고리의 다른 글
javascript 문자열 내 포함 여부 includes (0) | 2020.02.28 |
---|---|
javascript 문자(열) 아스키 코드 ascii code로 변환 혹은 읽는 법 (0) | 2020.02.27 |
javascript 문자열에 문자열 추가하기 ( + , concat ) (0) | 2020.02.25 |
javascript 배열 일부만 복사 slice (0) | 2020.02.24 |
javascript sort 함수를 사용하여 정렬하는 법 (0) | 2020.02.24 |