RosettaCodeData/Task/Map-range/Nim/map-range.nim

11 lines
267 B
Nim

import strutils
type FloatRange = tuple[s,e: float]
proc mapRange(a,b: FloatRange, s): float =
b.s + (s - a.s) * (b.e - b.s) / (a.e - a.s)
for i in 0..10:
let m = mapRange((0.0,10.0), (-1.0, 0.0), float(i))
echo i, " maps to ", formatFloat(m, precision = 0)