 <p>There are a few key points when doing this sort of thing (and these apply to languages other than Tcl too). Firstly, you should <strong>compute the delta</strong> from the span you want and the number of steps you want. Secondly, you should <strong>keep your incrementing and loop control using integers</strong> if you can, so as to avoid fencepost errors caused by rounding; instead <strong>compute the value for the loop iteration</strong> by multiplying the delta by the loop counter and adding to the originating value. Thirdly, you should consider what the right <strong>precision</strong> is when printing your results; in Tcl, this tends to mean using <code>format</code> with the <code>%f</code> conversion and appropriate width specifier.</p> <pre><code>set from -0.3925 set to 0.3925 set points 19 set delta [expr {($to-$from) / double($points-1)}] for {set i 0} {$i&lt;$points} {incr i} { set x [expr {$from + $i*$delta}] puts [format "%.5f" $x] } </code></pre> <p>This produces this output:</p> <pre> -0.39250 -0.34889 -0.30528 -0.26167 -0.21806 -0.17444 -0.13083 -0.08722 -0.04361 0.00000 0.04361 0.08722 0.13083 0.17444 0.21806 0.26167 0.30528 0.34889 0.39250 </pre>