공학 표기법으로 숫자 형식 지정하는 방법
SI 단위 접두사에 맞는 지수로 숫자를 표시하려면 공학 표기법을 사용하세요
소개
공학적 표기법은 지수가 항상 3의 배수인 10의 거듭제곱을 사용하여 숫자를 표기하는 방식입니다. 123,000,000을 1.23×10⁸로 표시하는 대신, 공학적 표기법은 이를 123×10⁶으로 표시합니다. 이러한 3의 배수 정렬은 킬로(10³), 메가(10⁶), 기가(10⁹)와 같은 국제단위계(SI) 접두사와 일치합니다.
이 표기법은 SI 접두사를 사용하는 측정이 필요한 공학, 전자공학 및 과학적 맥락에서 자주 등장합니다. 4.7×10⁻⁶ 패럿으로 평가된 커패시터는 4.7 마이크로패럿이 됩니다. 2.4×10⁹ 헤르츠의 주파수는 2.4 기가헤르츠가 됩니다. 공학적 표기법은 지수가 SI 접두사에 직접 대응하기 때문에 이러한 변환을 자연스럽게 만듭니다.
자바스크립트는 Intl.NumberFormat API를 통해 공학적 표기법을 기본적으로 지원합니다. 이 API는 변환을 자동으로 처리하고 다양한 언어와 지역에 맞게 형식을 조정합니다.
공학적 표기법이란
공학적 표기법은 숫자를 계수에 10의 거듭제곱을 곱한 형태로 표현하며, 이때 지수는 항상 3으로 나누어 떨어집니다. 숫자 987,654,321은 공학적 표기법에서 987.654×10⁶이 되며, 자바스크립트 출력에서는 987.654E6으로 표기됩니다.
계수는 1에서 999.999 사이의 숫자로 표시되고, 그 뒤에 E와 지수가 따라옵니다. E는 지수를 나타내며 10의 해당 거듭제곱을 곱한다는 것을 의미합니다. 987.654E6 값은 987.654 × 10⁶을 의미하며, 이는 987,654,000과 같습니다.
이 형식은 987,654,321과 같이 모든 자릿수를 구분 기호와 함께 표기하는 표준 십진 표기법과 다릅니다. 또한 K, M, B와 같은 문자를 사용하여 크기를 나타내는 간결한 표기법과도 다릅니다. 공학적 표기법은 지수 표기법을 사용하여 10의 거듭제곱을 명시적으로 보여줍니다.
공학 표기법이 3의 배수를 사용하는 이유
3의 배수로 제한하는 이유는 SI 단위 접두사가 1000의 배수로 증가하거나 감소하기 때문입니다. 접두사 척도에서 각 단계를 올라갈 때마다 10³을 곱하고, 내려갈 때마다 10³으로 나눕니다.
10의 거듭제곱에 대한 SI 접두사를 살펴보세요:
- 10³ = 킬로 (k)
- 10⁶ = 메가 (M)
- 10⁹ = 기가 (G)
- 10¹² = 테라 (T)
- 10⁻³ = 밀리 (m)
- 10⁻⁶ = 마이크로 (μ)
- 10⁻⁹ = 나노 (n)
- 10⁻¹² = 피코 (p)
숫자가 지수 6을 사용하는 공학 표기법을 사용할 때, 이것이 메가 접두사에 해당한다는 것을 알 수 있습니다. 지수가 -9일 때는 나노 접두사에 해당합니다. 이러한 직접적인 대응 관계는 SI 단위가 지배적인 기술 분야에서 공학 표기법을 실용적으로 만듭니다.
이러한 제한이 없다면, 표기법과 SI 접두사 간의 변환을 위해 암산을 수행해야 할 것입니다. 이 제한이 있으면 변환이 즉각적으로 이루어집니다.
공학 표기법이 과학 표기법과 다른 점
과학 표기법도 10의 거듭제곱을 사용하여 숫자를 표현하지만, 가능한 가장 작은 지수를 사용합니다. 숫자 987,654,321은 과학 표기법에서 9.87654321×10⁸이 되며, 9.87654321E8로 표기됩니다.
과학 표기법은 항상 소수점 앞에 정확히 하나의 0이 아닌 숫자를 배치합니다. 공학 표기법은 지수가 3으로 나누어지도록 소수점 앞에 최대 세 개의 숫자를 허용합니다.
const scientificFormatter = new Intl.NumberFormat("en-US", {
notation: "scientific"
});
console.log(scientificFormatter.format(987654321));
// 출력: "9.877E8"
const engineeringFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(engineeringFormatter.format(987654321));
// 출력: "987.654E6"
과학 표기법 포맷터는 소수점 앞에 한 자리를 배치하여 9.877E8을 생성합니다. 공학 표기법 포맷터는 지수 8 대신 6을 달성하기 위해 소수점 앞에 세 자리를 배치하여 987.654E6을 생성합니다.
두 표기법 모두 동일한 값을 나타내지만, 공학 표기법은 지수를 최소화하는 것보다 SI 접두사와의 정렬을 우선시합니다.
JavaScript에서 공학 표기법 사용하기
숫자 표현 방식을 제어하는 Intl.NumberFormat의 notation 옵션이 있습니다. 이를 "engineering"으로 설정하면 공학 표기법이 활성화됩니다.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(1500));
// 출력: "1.5E3"
console.log(formatter.format(1500000));
// 출력: "1.5E6"
console.log(formatter.format(1500000000));
// 출력: "1.5E9"
포맷터는 숫자의 크기에 따라 적절한 지수를 자동으로 선택합니다. 지수는 항상 3의 배수이므로 SI 접두사와 일치합니다.
올바른 지수나 계수를 직접 계산할 필요가 없습니다. Intl API가 숫자 값에 기반하여 이러한 계산을 처리합니다.
공학 표기법이 다양한 크기의 숫자를 포맷하는 방법
공학 표기법은 매우 작은 숫자부터 매우 큰 숫자까지 모든 규모에 적용됩니다. 다양한 크기가 지수에 어떻게 매핑되는지 이해하면 출력을 예측하는 데 도움이 됩니다.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(0.0015));
// 출력: "1.5E-3"
console.log(formatter.format(0.0000015));
// 출력: "1.5E-6"
console.log(formatter.format(1.5));
// 출력: "1.5E0"
console.log(formatter.format(1500));
// 출력: "1.5E3"
console.log(formatter.format(1500000));
// 출력: "1.5E6"
console.log(formatter.format(1500000000));
// 출력: "1.5E9"
console.log(formatter.format(1500000000000));
// 출력: "1.5E12"
1보다 작은 작은 숫자는 음수 지수를 사용합니다. 숫자 0.0015는 1.5E-3이 되며, 이는 밀리 접두사에 해당합니다. 숫자 0.0000015는 1.5E-6이 되며, 이는 마이크로 접두사에 해당합니다.
1 주변의 숫자는 0의 지수를 사용합니다. 숫자 1.5는 1.5E0이 되며, 이는 1.5 × 10⁰ = 1.5 × 1 = 1.5와 같습니다.
큰 숫자는 양수 지수를 사용합니다. 숫자 1500은 1.5E3이 되며, 이는 킬로 접두사에 해당합니다. 이 패턴은 메가, 기가, 테라에 대해서도 계속됩니다.
공학 표기법에서 소수점 자릿수 제어하기
기본적으로 포맷터는 계수에 여러 소수 자릿수를 포함합니다. minimumFractionDigits와 maximumFractionDigits 옵션을 사용하여 정밀도를 제어할 수 있습니다.
const defaultFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(defaultFormatter.format(1234567));
// 출력: "1.235E6"
const noDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 0
});
console.log(noDecimalsFormatter.format(1234567));
// 출력: "1E6"
const twoDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 2
});
console.log(twoDecimalsFormatter.format(1234567));
// 출력: "1.23E6"
maximumFractionDigits 옵션은 계수의 소수점 이후에 나타나는 자릿수를 제한합니다. 이를 0으로 설정하면 모든 소수 자릿수가 제거되고 계수의 정수 부분만 표시됩니다.
여러 숫자 간에 일관된 형식을 유지하기 위해 최소 소수 자릿수를 강제할 수도 있습니다.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
console.log(formatter.format(1000));
// 출력: "1.00E3"
console.log(formatter.format(1500));
// 출력: "1.50E3"
console.log(formatter.format(1234567));
// 출력: "1.23E6"
이렇게 하면 모든 숫자가 정확히 두 개의 소수 자릿수를 표시하므로 표와 보고서에서 시각적 일관성을 유지하는 데 도움이 됩니다.
로케일에 따른 공학적 표기법 작동 방식
공학적 표기법은 소수점 구분자에 대한 다양한 로케일 규칙에 맞게 조정됩니다. 지수 형식은 일관되게 유지되지만, 계수 형식은 로케일에 따라 변경됩니다.
const enFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(enFormatter.format(1234567));
// Output: "1.235E6"
const deFormatter = new Intl.NumberFormat("de-DE", {
notation: "engineering"
});
console.log(deFormatter.format(1234567));
// Output: "1,235E6"
const frFormatter = new Intl.NumberFormat("fr-FR", {
notation: "engineering"
});
console.log(frFormatter.format(1234567));
// Output: "1,235E6"
영어는 계수의 소수점 구분자로 마침표를 사용합니다. 독일어와 프랑스어는 소수점 구분자로 쉼표를 사용합니다. E와 지수는 모든 로케일에서 동일하게 유지됩니다.
이러한 지역화는 계수 부분에만 적용됩니다. E와 지수 값을 사용하는 지수 표기법은 국제 과학 규칙을 따르며 로케일 간에 변경되지 않습니다.
공학적 표기법과 다른 형식 옵션 결합하기
공학적 표기법은 다른 숫자 형식 옵션과 함께 작동합니다. 공학적 표기법을 사용하면서 반올림, 유효 자릿수, 부호 표시를 제어할 수 있습니다.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
signDisplay: "always"
});
console.log(formatter.format(1500000));
// Output: "+1.5E6"
console.log(formatter.format(-1500000));
// Output: "-1.5E6"
signDisplay 옵션은 양수에 플러스 부호를 표시할지 여부를 제어합니다. "always"로 설정하면 양수와 음수 모두에 부호가 표시됩니다.
소수점 자리 대신 유효 자릿수도 제어할 수 있습니다.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumSignificantDigits: 4,
maximumSignificantDigits: 4
});
console.log(formatter.format(1234567));
// Output: "1.235E6"
console.log(formatter.format(1567890));
// Output: "1.568E6"
minimumSignificantDigits와 maximumSignificantDigits 옵션은 소수점 자리만이 아니라 계수의 전체 유효 자릿수를 제어합니다.
공학 표기법을 사용해야 하는 경우
공학 표기법은 SI 단위 접두사를 사용하는 측정값이 있는 기술적 맥락에서 가장 효과적입니다. 전자 장비 문서, 과학 논문 및 공학 사양에서 일반적으로 이 표기법을 사용합니다.
4.7×10⁻⁶ 패럿 커패시터가 있는 회로를 문서화할 때, 공학 표기법은 값을 4.7E-6으로 표시합니다. 엔지니어들은 이를 즉시 4.7 마이크로패럿으로 인식합니다. 2.4×10⁹ 헤르츠 주파수를 표시할 때, 공학 표기법은 2.4E9로 표시하며, 엔지니어들은 이를 2.4 기가헤르츠로 인식합니다.
이 표기법은 지수 표기법을 이해하지 못할 수 있는 일반 대중에게는 적합하지 않습니다. 소셜 미디어 카운터, 전자상거래 가격 및 소비자 대상 대시보드는 대신 표준 표기법이나 간결한 표기법을 사용해야 합니다.
정밀도가 중요하고 모든 자릿수가 중요한 경우에는 공학 표기법을 사용하지 마십시오. 금융 계산, 법률 문서 및 감사 추적에는 정확한 십진수 표현이 필요합니다. 은행 잔고는 1.23456E3이 아닌 $1,234.56으로 표시해야 합니다.
대상 사용자를 고려하세요. 엔지니어, 물리학자 및 기술 전문가는 공학 표기법을 예상하고 이해합니다. 일반 소비자는 표준 표기법이나 간결한 표기법이 더 읽기 쉽다고 생각합니다.