IMSL C Math Library
dollar_fraction
Converts a decimal price to a fractional price.
Synopsis
#include <imsl.h>
float imsl_f_dollar_fraction (float decimal_dollar, int fraction)
The type double function is imsl_d_dollar_fraction.
Required Arguments
float decimal_dollar (Input)
Dollar price expressed as a decimal number.
int fraction (Input)
Denominator of the fractional dollar. fraction must be positive.
Return Value
The dollar price expressed as a fraction. The numerator is the decimal part of the return value. If no result can be computed, NaN is returned.
Description
Function imsl_f_dollar_fraction converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fractional price. If no result can be computed, NaN is returned.
It can be found by solving the following
where idollar is the integer part of the decimal_dollar, and ifrac is the integer part of log(fraction).
Example
In this example, imsl_f_dollar_fraction converts $1.25 to $1 1/4.
 
#include <stdio.h>
#include <imsl.h>
 
int main()
{
    int numerator, fraction = 4;
    float dollarfrc, decimal_dollar = 1.25;
 
    dollarfrc = imsl_f_dollar_fraction(decimal_dollar,
        fraction);
    numerator = dollarfrc*10.-((int)dollarfrc)*10;
    printf ("The decimal dollar $1.25 as a "
        "fractional dollar = $%i %i/%i.\n",
        (int)dollarfrc, numerator, fraction);
}
 
Output
 
The decimal dollar $1.25 as a fractional dollar = $1 1/4.