Price fraction: Difference between revisions

Add Quackery
No edit summary
(Add Quackery)
Line 3,367:
else: lo = mid+1
return lo</lang>
 
=={{header|Quackery}}==
This program uses the bignum rationals provided by <code>bigrat.qky</code>, so it avoids the pitfalls of storing money as floating point numbers.
<lang quackery>[ $ 'bigrat.qky' loadfile ] now!
 
[ 2over 2over v< if 2swap 2drop ] is vmax ( n/d n/d --> n/d )
 
[ 100 1 v* 1 1 v-
0 1 vmax 5 1 v/ /
[ table
10 18 26 32 38
44 50 54 58 62
66 70 74 78 82
86 90 94 98 100 ] 100 ] is scale ( n/d --> n/d )
 
[ swap echo sp echo ] is br ( n/d --> )
 
[ 2dup br say ' --> '
scale br cr ] is test ( n/d --> )
 
0 100 test
50 100 test
65 100 test
66 100 test
100 100 test
7368 10000 test
 
( Show how to enter and display results as a decimal too. )
$ '0.7368' dup echo$
say ' --> '
$->v drop scale
2 point$ echo$</lang>
{{out}}
<pre>
0 100 --> 10 100
50 100 --> 62 100
65 100 --> 74 100
66 100 --> 78 100
100 100 --> 100 100
7368 10000 --> 82 100
0.7368 --> 0.82
</pre>
 
=={{header|R}}==
1,808

edits