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>