Price fraction: Difference between revisions

Add Swift
(added langur language example)
(Add Swift)
Line 3,472:
"get a price"
(pr rescale: ( (Random between: 0 and: 100)/100 )) displayNl.</lang>
 
=={{header|Swift}}==
 
<lang swift>let ranges = [
(0.00..<0.06, 0.10),
(0.06..<0.11, 0.18),
(0.11..<0.16, 0.26),
(0.16..<0.21, 0.32),
(0.21..<0.26, 0.38),
(0.26..<0.31, 0.44),
(0.31..<0.36, 0.50),
(0.36..<0.41, 0.54),
(0.41..<0.46, 0.58),
(0.46..<0.51, 0.62),
(0.51..<0.56, 0.66),
(0.56..<0.61, 0.70),
(0.61..<0.66, 0.74),
(0.66..<0.71, 0.78),
(0.71..<0.76, 0.82),
(0.76..<0.81, 0.86),
(0.81..<0.86, 0.90),
(0.86..<0.91, 0.94),
(0.91..<0.96, 0.98),
(0.96..<1.01, 1.00)
]
 
func adjustDouble(_ val: Double, accordingTo ranges: [(Range<Double>, Double)]) -> Double? {
return ranges.first(where: { $0.0.contains(val) })?.1
}
 
for val in stride(from: 0.0, through: 1, by: 0.01) {
let strFmt = { String(format: "%.2f", $0) }
 
print("\(strFmt(val)) -> \(strFmt(adjustDouble(val, accordingTo: ranges) ?? val))")
}</lang>
 
{{out}}
 
<pre style="overflow: scroll; height: 20em">0.00 -> 0.10
0.01 -> 0.10
0.02 -> 0.10
0.03 -> 0.10
0.04 -> 0.10
0.05 -> 0.10
0.06 -> 0.18
0.07 -> 0.18
0.08 -> 0.18
0.09 -> 0.18
0.10 -> 0.18
0.11 -> 0.26
0.12 -> 0.26
0.13 -> 0.26
0.14 -> 0.26
0.15 -> 0.26
0.16 -> 0.32
0.17 -> 0.32
0.18 -> 0.32
0.19 -> 0.32
0.20 -> 0.32
0.21 -> 0.38
0.22 -> 0.38
0.23 -> 0.38
0.24 -> 0.38
0.25 -> 0.38
0.26 -> 0.44
0.27 -> 0.44
0.28 -> 0.44
0.29 -> 0.44
0.30 -> 0.44
0.31 -> 0.50
0.32 -> 0.50
0.33 -> 0.50
0.34 -> 0.50
0.35 -> 0.50
0.36 -> 0.54
0.37 -> 0.54
0.38 -> 0.54
0.39 -> 0.54
0.40 -> 0.54
0.41 -> 0.58
0.42 -> 0.58
0.43 -> 0.58
0.44 -> 0.58
0.45 -> 0.58
0.46 -> 0.62
0.47 -> 0.62
0.48 -> 0.62
0.49 -> 0.62
0.50 -> 0.62
0.51 -> 0.66
0.52 -> 0.66
0.53 -> 0.66
0.54 -> 0.66
0.55 -> 0.66
0.56 -> 0.70
0.57 -> 0.70
0.58 -> 0.70
0.59 -> 0.70
0.60 -> 0.70
0.61 -> 0.74
0.62 -> 0.74
0.63 -> 0.74
0.64 -> 0.74
0.65 -> 0.74
0.66 -> 0.78
0.67 -> 0.78
0.68 -> 0.78
0.69 -> 0.78
0.70 -> 0.78
0.71 -> 0.82
0.72 -> 0.82
0.73 -> 0.82
0.74 -> 0.82
0.75 -> 0.82
0.76 -> 0.86
0.77 -> 0.86
0.78 -> 0.86
0.79 -> 0.86
0.80 -> 0.86
0.81 -> 0.90
0.82 -> 0.90
0.83 -> 0.90
0.84 -> 0.90
0.85 -> 0.90
0.86 -> 0.94
0.87 -> 0.94
0.88 -> 0.94
0.89 -> 0.94
0.90 -> 0.94
0.91 -> 0.98
0.92 -> 0.98
0.93 -> 0.98
0.94 -> 0.98
0.95 -> 0.98
0.96 -> 1.00
0.97 -> 1.00
0.98 -> 1.00
0.99 -> 1.00
1.00 -> 1.00</pre>
 
=={{header|Tcl}}==