aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/global_objects/parsefloat/index.md
blob: 9b9b6aa2f61e089b2219d07d4ee4adf25b178cef (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---
title: parseFloat()
slug: Web/JavaScript/Reference/Global_Objects/parseFloat
tags:
  - JavaScript
  - Method
  - Reference
browser-compat: javascript.builtins.parseFloat
---
{{jsSidebar("Objects")}}

**`parseFloat()`** 함수는 주어진 값을 필요한 경우 문자열로 변환한 후 부동소수점 실수로 파싱해 반환합니다.

{{EmbedInteractiveExample("pages/js/globalprops-parsefloat.html")}}

## 구문

```js
parseFloat(string)
```

### 매개변수

- `string`
  - : 파싱할 값입니다. 문자열이 아닐 경우 [`ToString`](https://tc39.es/ecma262/#sec-tostring) 추상 연산을 사용해 문자열로 변환합니다. 문자열의 선행 공백은 무시합니다.

### 반환 값

주어진 문자열에서 파싱한 부동소수점 실수입니다.

공백이 아닌 첫 글자를 숫자로 변환할 수 없는 경우 {{jsxref("NaN")}}을 반환합니다.

## 설명

`parseFloat`은 전역 객체의 함수 속성입니다.

- `parseFloat`이 양의 부호(`+`), 음의 부호(`-` U+002D HYPHEN-MINUS), 숫자(`0`-`9`), 소수점(`.`), 지수(`e`, `E`) 외의 다른 글자를 발견할 경우 해당 문자 이전까지의 문자만 사용해 파싱하며 문제의 문자와 그 이후는 모두 무시합니다.
- 소수점이 두 개 이상 존재할 경우 두 번째 소수점 역시 위와 같이 무시됩니다.
- 주어진 값의 선행 및 후행 공백은 무시합니다.
- 주어진 값의 첫 글자를 숫자로 변환할 수 없는 경우 {{jsxref("NaN")}}을 반환합니다.
- `parseFloat`은 {{jsxref("Infinity")}}도 파싱 후 반환할 수 있습니다.
- `parseFloat`은 {{jsxref("BigInt")}} 구문을 {{jsxref("Number")}}로 반환하므로 정확도를 잃습니다. 마지막 `n` 문자를 무시하기 때문입니다.

더 엄격한 파싱이 필요하면, 유효하지 않은 문자가 어디에나 존재할 시 {{jsxref("NaN")}}을 반환하는 {{jsxref("Number", "Number(value)")}}를 고려하세요.

`parseFloat`은 {{jsxref("Object.toString", "toString")}}이나 {{jsxref("Object.valueOf", "valueOf")}} 메서드를 구현한 객체도 파싱할 수 있습니다. 이 때의 결과는 객체의 `toString()`, `valueOf()`의 반환 값을 `parseFloat`에 전달한 것과 동일합니다.

## 예제

### 숫자를 반환하는 경우

아래 예제는 모두 `3.14`를 반환합니다.

```js
parseFloat(3.14);
parseFloat('3.14');
parseFloat('  3.14  ');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14와 숫자가 아닌 문자들');
parseFloat({ toString: function() { return "3.14" } });
```

### `NaN`을 반환하는 경우

다음 예제는 {{jsxref("NaN")}}을 반환합니다.

```js
parseFloat('FF2');
```

### `parseFloat`과 `BigInt`

다음 예제는 부동소수점 실수로 표현하기엔 너무 큰 수를 받거나 `n`을 무시해서 정확도를 잃어버린 `900719925474099300`을 반환합니다.

```js
parseFloat(900719925474099267n);
parseFloat('900719925474099267n');
```

## 명세

{{Specifications}}

## 브라우저 호환성

{{Compat}}

## 같이 보기

- {{jsxref("parseInt", "parseInt()")}}
- {{jsxref("Number.parseFloat()")}}
- {{jsxref("Number.parseInt()")}}
- {{jsxref("Number.toFixed()")}}
- {{jsxref("isNaN", "isNaN()")}}