Price fraction: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added DO-END and SELECT labels. -- ~~~~) |
(Add XPL0) |
||
Line 2,374: | Line 2,374: | ||
1.000000e+00, |
1.000000e+00, |
||
1.000000e-01></pre> |
1.000000e-01></pre> |
||
=={{header|XPL0}}== |
|||
<lang XPL0>include c:\cxpl\codes; \intrinsic 'code' declarations |
|||
func real Price(V); \Convert to standard value |
|||
real V; |
|||
[V:= V + 0.001; \avoids possible rounding error i.e. 0.059999999 |
|||
case of |
|||
V < 0.06: ret 0.10; |
|||
V < 0.11: ret 0.18; |
|||
V < 0.16: ret 0.26; |
|||
V < 0.21: ret 0.32; |
|||
V < 0.26: ret 0.38; |
|||
V < 0.31: ret 0.44; |
|||
V < 0.36: ret 0.50; |
|||
V < 0.41: ret 0.54; |
|||
V < 0.46: ret 0.58; |
|||
V < 0.51: ret 0.62; |
|||
V < 0.56: ret 0.66; |
|||
V < 0.61: ret 0.70; |
|||
V < 0.66: ret 0.74; |
|||
V < 0.71: ret 0.78; |
|||
V < 0.76: ret 0.82; |
|||
V < 0.81: ret 0.86; |
|||
V < 0.86: ret 0.90; |
|||
V < 0.91: ret 0.94; |
|||
V < 0.96: ret 0.98 |
|||
other ret 1.00; |
|||
]; |
|||
[Format(1,2); |
|||
RlOut(0, Price(0.0599)); CrLf(0); |
|||
RlOut(0, Price(0.10)); CrLf(0); |
|||
RlOut(0, Price(1.0)); CrLf(0); |
|||
]</lang> |
|||
Output: |
|||
<pre> |
|||
0.18 |
|||
0.18 |
|||
1.00 |
|||
</pre> |