2017-09-15 2 views
0

숫자를 주어진 소수점 이하 자릿수로 반올림하는 코드를 만들었지 만, 언더 플로가있을 때 더 많은 장소를 사용하여 0으로 반올림하는 것을 피할 수 있습니다. 이는 사용자에게 충분한 정보가 아닙니다.자바 스크립트 번호가 과학 표기법으로 표시되지 않으면 얼마나 작습니까?

그러나 나는 종종 작은 숫자가 과학 표기법으로 표시된다는 것을 알아 챘습니다. 타겟 사용자는 과학 표기법에 익숙하지 않을 것으로 예상되며 언더 플로우를 처리 한 후에도 이러한 수치는 너무 작아서 0으로 처리해야합니다.

숫자가 과학 표기법으로 표시 될 정도로 작을 때 어떻게 알 수 있습니까?

비교할 수있는 번호가 가장 작은 경우 무엇입니까? 더 좋은 방법이 있습니까?

은 (내가 숫자를 문자열로 변환하고 그것이 "E"를 가지고 있지만 나는 호기심 종류가 너무 어떤 수학 전용 솔루션으로 알고 있어요 여부를 확인 할 수 있습니다 알고 있습니다.)

+1

숫자의 문자열 형식을 가져오고 포함 된 "e"를 확인하지 않는 이유는 무엇입니까? – Pointy

+0

@Pointy : 오, 내 호기심을 위해서 수학적으로하는 법을 알고 싶습니다. 나는 그 질문에 그것을 포함시키는 것을 의미했다. 내가 그것을 편집하게 해주세요 ... – hippietrail

+1

"e"를 확인하는 것이 꽤 쉽지만 그 트릭은 부동 소수점 수학이 꽤 복잡합니다. – Pointy

답변

2

있습니다 수는 과학적 표기법으로 표시되는 몇 가지 이유 :

  • 수의 유효 숫자의 길이가 0이 아닌 숫자 앞에 0의 수는 6보다 큰 경우보다 큰 21
  • 경우 (예 : 0.00000001)

과학 표기법으로 변환하는 숫자는 Section 9.8.1 of ECMA-262입니다.

이 사양의 구현은 V8 engine here에서 찾을 수 있습니다.

관련 문제