Price fraction: Difference between revisions

→‎{{header|Go}}: Turned this old code into a runnable program with examples.
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
(→‎{{header|Go}}: Turned this old code into a runnable program with examples.)
Line 1,331:
 
=={{header|Go}}==
<lang go>funcpackage pf(v float64) float64 {main
 
import "fmt"
 
func pf(v float64) float64 {
switch {
case v < .06: return .10
case v < .11: return .1810
case v < .1611: return .26
case v < .21: return .3218
case v < .2616: return .38
case v < .31: return .4426
case v < .3621: return .50
case v < .41: return .5432
case v < .4626: return .58
case v < .51: return .6238
case v < .5631: return .66
case v < .61: return .7044
case v < .6636: return .74
case v < .71: return .7850
case v < .7641: return .82
case v < .81: return .8654
case v < .8646: return .90
case v < .91: return .9458
case v < .9651: return .98
return .62
case v < .56:
return .66
case v < .61:
return .70
case v < .66:
return .74
case v < .71:
return .78
case v < .76:
return .82
case v < .81:
return .86
case v < .86:
return .90
case v < .91:
return .94
case v < .96:
return .98
}
return 1
}
 
func main() {
tests := []float64{0.3793, 0.4425, 0.0746, 0.6918, 0.2993,
0.5486, 0.7848, 0.9383, 0.2292, 0.9760}
for _, v := range tests {
fmt.Printf("%0.4f -> %0.2f\n", v, pf(v))
}
}</lang>
 
<pre>
0.3793 -> 0.54
0.4425 -> 0.58
0.0746 -> 0.18
0.6918 -> 0.78
0.2993 -> 0.44
0.5486 -> 0.66
0.7848 -> 0.86
0.9383 -> 0.98
0.2292 -> 0.38
0.9760 -> 1.00
</pre>
 
=={{header|Groovy}}==
9,476

edits