# str2double

Convert strings to double precision values

## Syntax

``X = str2double(str)``

## Description

``` NoteCalling `string` and then `double` is recommended over `str2double` because it provides greater flexibility and allows vectorization. For additional information, see Alternative Functionality. `X = str2double(str)` converts the text in `str` to double precision values. `str` contains text that represents real or complex numeric values. `str` can be a character vector, a cell array of character vectors, or a string array. If `str` is a character vector or string scalar, then `X` is a numeric scalar. If `str` is a cell array of character vectors or a string array, then `X` is a numeric array that is the same size as `str`.Text that represents a number can contain digits, a comma (thousands separator), a decimal point, a leading `+` or `-` sign, an `e` preceding a power of 10 scale factor, and an `i` or a `j` for a complex unit. You cannot use a period as a thousands separator, or a comma as a decimal point.If `str2double` cannot convert text to a number, then it returns a `NaN` value.```

example

## Examples

collapse all

Convert character vectors that represent numbers to double precision values. You can also convert a cell array of character vectors to a numeric array of the same size.

Convert a character vector to a real number.

`X = str2double('3.1416')`
```X = 3.1416 ```

Convert a character vector when it represents a number using exponential notation.

`X = str2double('2.998e8')`
```X = 299800000 ```

Convert a character vector that uses a comma as the thousands separator.

`X = str2double('1,200.34')`
```X = 1.2003e+03 ```

Convert a character vector to a complex number.

`X = str2double('3.14 + 2.7i')`
```X = 3.1400 + 2.7000i ```

Convert a cell array of character vectors to a numeric array.

```str = {'2.718','3.1416'; '137','0.015'}; X = str2double(str)```
```X = 2×2 2.7180 3.1416 137.0000 0.0150 ```

You can convert text to numbers using the `str2double` function.

Create a string that represents a number. Convert it to a numeric scalar.

`str = "81470.5"`
```str = "81470.5" ```
`X = str2double(str)`
```X = 8.1470e+04 ```

Create a string array representing numbers. Convert it to a numeric array that is the same size.

`str = ["292.1" "139.44" ".241" "0" "100.245"]`
```str = 1x5 string "292.1" "139.44" ".241" "0" "100.245" ```
`X = str2double(str)`
```X = 1×5 292.1000 139.4400 0.2410 0 100.2450 ```

## Input Arguments

collapse all

Text that represents numbers, specified as a character vector, a cell array of character vectors, or a string array.

## Alternative Functionality

Update code that makes use of `str2double` to use `string` and then `double` instead. Using `double` to convert a `char` array produces an array of the corresponding Unicode® values. Text in strings does not convert in this way. For example:

Not RecommendedRecommended
`x = str2double('13')`
```x = 13```
`x = double(string('13'))`
```x = 13```

## Version History

Introduced before R2006a