Price fraction: Difference between revisions
Content added Content deleted
m (→{{header|Ruby}}: better variable name) |
No edit summary |
||
Line 94: | Line 94: | ||
.3444635 .5 |
.3444635 .5 |
||
.0491907 .1 |
.0491907 .1 |
||
=={{header|C++}}== |
|||
<lang C++>#include <iostream> |
|||
#include <cmath> |
|||
int main( ) { |
|||
double froms[ ] = { 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 } ; |
|||
double tos[ ] = { 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 , 1.01 } ; |
|||
double 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 } ; |
|||
double number = 0.1 ; |
|||
std::cout << "Enter a fractional number between 0 and 1 ( 0 to end )!\n" ; |
|||
std::cin >> number ; |
|||
while ( number != 0 ) { |
|||
if ( ( number < 0 ) || ( number > 1 ) ) { |
|||
std::cout << "Error! Only positive values between 0 and 1 are allowed!\n" ; |
|||
return 1 ; |
|||
} |
|||
double integerpart = floor ( number ) ; |
|||
double remainder = number - integerpart ; |
|||
int n = 0 ; |
|||
while ( ! ( ( remainder >= froms[ n ] ) && ( remainder < tos[ n ] ) ) ) |
|||
n++ ; |
|||
std::cout << "-->" << ( integerpart + replacements[ n ] ) << '\n' ; |
|||
std::cout << "Enter a fractional number ( 0 to end )!\n" ; |
|||
std::cin >> number ; |
|||
} |
|||
return 0 ; |
|||
} |
|||
</lang> |
|||
<pre>Sample output: |
|||
Enter a fractional number between 0 and 1 ( 0 to end )! |
|||
0.7 |
|||
-->0.78 |
|||
Enter a fractional number ( 0 to end )! |
|||
0.32 |
|||
-->0.5 |
|||
Enter a fractional number ( 0 to end )! |
|||
0.12 |
|||
-->0.26 |
|||
Enter a fractional number ( 0 to end )! |
|||
0 |
|||
</pre> |
|||
=={{header|Clipper}}== |
=={{header|Clipper}}== |