Price fraction: Difference between revisions
Content added Content deleted
Line 2,124: | Line 2,124: | ||
Price for 0.69, is: 0.78 |
Price for 0.69, is: 0.78 |
||
Price for 0.39, is: 0.54</pre> |
Price for 0.39, is: 0.54</pre> |
||
=={{header|Objeck}}== |
|||
{{trans|C#}} |
|||
<lang objeck>class PriceFraction { |
|||
function : Main(args : String[]) ~ Nil { |
|||
for(i := 0; i < 5; i++;) { |
|||
f := Float->Random(); |
|||
p := SpecialRound(f); |
|||
"{$f} -> {$p}"->PrintLine(); |
|||
}; |
|||
} |
|||
function : SpecialRound(inValue : Float) ~ Float { |
|||
if (inValue > 1) { |
|||
return 1; |
|||
}; |
|||
splitters := [ |
|||
0.00 , 0.06 , 0.11 , 0.16 , 0.21 , |
|||
0.26 , 0.31 , 0.36 , 0.41 , 0.46 , |
|||
0.51 , 0.56 , 0.61 , 0.66 , 0.71 , |
|||
0.76 , 0.81 , 0.86 , 0.91 , 0.96 ]; |
|||
replacements := [ |
|||
0.10 , 0.18 , 0.26 , 0.32 , 0.38 , |
|||
0.44 , 0.50 , 0.54 , 0.58 , 0.62 , |
|||
0.66 , 0.70 , 0.74 , 0.78 , 0.82 , |
|||
0.86 , 0.90 , 0.94 , 0.98 , 1.00 ]; |
|||
for(x := 0; x < splitters->Size() - 1; x+=1;) { |
|||
if (inValue >= splitters[x] & inValue < splitters[x + 1]) { |
|||
return replacements[x]; |
|||
}; |
|||
}; |
|||
return inValue; |
|||
} |
|||
}</lang> |
|||
{{output}} |
|||
<pre> |
|||
0.317901 -> 0.5 |
|||
0.691109 -> 0.78 |
|||
0.790891 -> 0.86 |
|||
0.269922 -> 0.44 |
|||
0.690891 -> 0.78 |
|||
</pre> |
|||
=={{header|OCaml}}== |
=={{header|OCaml}}== |