# How to convert a string to a StepRange

**URL:** https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703
**Category:** General Usage
**Tags:** question
**Created:** [June 22, 2023, 2:09pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703 "2023-06-22T14:09:54Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [June 22, 2023, 2:09pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/1 "2023-06-22T14:09:55Z")

</div>

From a YAML file I get the string “2.0:0.25:10.0”.  
How can I convert it to a StepRange?

```julia
tsr="2.0:0.25:10.0"
TSR=eval(tsr) # not working

```

---

<div class="post-metadata">

### Author: ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)
#### Post date: [June 22, 2023, 2:12pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/2 "2023-06-22T14:12:37Z")

</div>

I’d avoid eval and just parse the numbers from the string using `nums = parse.(Float64,split(tsr,":"))` and then construct the range using those, `range(nums[1],nums[3],step=nums[2])`

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [June 22, 2023, 2:15pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/3 "2023-06-22T14:15:38Z")

</div>

> [@tbeason](#):
>
> nums = parse.(Float64,split(tsr,“:”))  
> StepRange(nums[1], nums[2], nums[3])

gives:

```julia
ERROR: ArgumentError: StepRange should not be used with floating point
Stacktrace:
 [1] steprange_last(start::Float64, step::Float64, stop::Float64)
   @ Base .\range.jl:327
 [2] StepRange{Float64, Float64}(start::Float64, step::Float64, stop::Float64)
   @ Base .\range.jl:320
 [3] StepRange(start::Float64, step::Float64, stop::Float64)
   @ Base .\range.jl:373
 [4] top-level scope
   @ REPL[7]:1

```

---

<div class="post-metadata">

### Author: ![davide](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davide/32/52136_2.png) [@davide](https://discourse.julialang.org/u/davide)
#### Post date: [June 22, 2023, 2:19pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/4 "2023-06-22T14:19:26Z")

</div>

`range(nums[1],nums[3],step=nums[2])`  
should work

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [June 22, 2023, 2:20pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/5 "2023-06-22T14:20:15Z")

</div>

Thank you!

---

<div class="post-metadata">

### Author: ![rocco\_sprmnt21](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rocco_sprmnt21/32/20127_2.png) [@rocco\_sprmnt21](https://discourse.julialang.org/u/rocco_sprmnt21)
#### Post date: [June 22, 2023, 2:20pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/6 "2023-06-22T14:20:19Z")

</div>

```julia

range(;zip((:start,:step,:stop),(parse.(Float64, split(tsr,':') )))...)# not

```

---

<div class="post-metadata">

### Author: ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)
#### Post date: [June 22, 2023, 2:40pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/7 "2023-06-22T14:40:38Z")

</div>

Yea, you are quoting code from my post that I didn’t write!

---

<div class="post-metadata">

### Author: ![rocco\_sprmnt21](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rocco_sprmnt21/32/20127_2.png) [@rocco\_sprmnt21](https://discourse.julialang.org/u/rocco_sprmnt21)
#### Post date: [June 22, 2023, 2:45pm UTC](https://discourse.julialang.org/t/how-to-convert-a-string-to-a-steprange/100703/8 "2023-06-22T14:45:57Z")

</div>

```julia
TSR=replace(tsr,':'=>',')
eval(Meta.parse("(:)("*TSR*')'))

```

or better

```julia
eval(Meta.parse(tsr))

```
