Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char *userTextForDouble(double d, char *rval)
- {
- if (d == 0.0)
- return "0";
- // TODO: negative numbers:if (d < 0.0)...
- if (d >= 1.0)
- sprintf(rval, "%.0f ", floor(d));
- d = d-floor(d); // now only the fractional part is left
- if (d == 0.0)
- return rval;
- if( d < 0.47 )
- {
- if( d < 0.25 )
- {
- if( d < 0.16 )
- {
- if( d < 0.12 ) // Note: fixed from .13
- {
- if( d < 0.11 )
- strcat(rval, "1/10"); // .1
- else
- strcat(rval, "1/9"); // .1111....
- }
- else // d >= .12
- {
- if( d < 0.14 )
- strcat(rval, "1/8"); // .125
- else
- strcat(rval, "1/7"); // .1428...
- }
- }
- else // d >= .16
- {
- if( d < 0.19 )
- {
- strcat(rval, "1/6"); // .1666...
- }
- else // d > .19
- {
- if( d < 0.22 )
- strcat(rval, "1/5"); // .2
- else
- strcat(rval, "2/9"); // .2222...
- }
- }
- }
- else // d >= .25
- {
- if( d < 0.37 ) // Note: fixed from .38
- {
- if( d < 0.28 ) // Note: fixed from .29
- {
- strcat(rval, "1/4"); // .25
- }
- else // d >=.28
- {
- if( d < 0.31 )
- strcat(rval, "2/7"); // .2857...
- else
- strcat(rval, "1/3"); // .3333...
- }
- }
- else // d >= .37
- {
- if( d < 0.42 ) // Note: fixed from .43
- {
- if( d < 0.40 )
- strcat(rval, "3/8"); // .375
- else
- strcat(rval, "2/5"); // .4
- }
- else // d >= .42
- {
- if( d < 0.44 )
- strcat(rval, "3/7"); // .4285...
- else
- strcat(rval, "4/9"); // .4444...
- }
- }
- }
- }
- else
- {
- if( d < 0.71 )
- {
- if( d < 0.60 )
- {
- if( d < 0.55 ) // Note: fixed from .56
- {
- strcat(rval, "1/2"); // .5
- }
- else // d >= .55
- {
- if( d < 0.57 )
- strcat(rval, "5/9"); // .5555...
- else
- strcat(rval, "4/7"); // .5714
- }
- }
- else // d >= .6
- {
- if( d < 0.62 ) // Note: Fixed from .63
- {
- strcat(rval, "3/5"); // .6
- }
- else // d >= .62
- {
- if( d < 0.66 )
- strcat(rval, "5/8"); // .625
- else
- strcat(rval, "2/3"); // .6666...
- }
- }
- }
- else
- {
- if( d < 0.80 )
- {
- if( d < 0.74 )
- {
- strcat(rval, "5/7"); // .7142...
- }
- else // d >= .74
- {
- if(d < 0.77 ) // Note: fixed from .78
- strcat(rval, "3/4"); // .75
- else
- strcat(rval, "7/9"); // .7777...
- }
- }
- else // d >= .8
- {
- if( d < 0.85 ) // Note: fixed from .86
- {
- if( d < 0.83 )
- strcat(rval, "4/5"); // .8
- else
- strcat(rval, "5/6"); // .8333...
- }
- else // d >= .85
- {
- if( d < 0.87 ) // Note: fixed from .88
- {
- strcat(rval, "6/7"); // .8571
- }
- else // d >= .87
- {
- if( d < 0.88 ) // Note: fixed from .89
- {
- strcat(rval, "7/8"); // .875
- }
- else // d >= .88
- {
- if( d < 0.90 )
- strcat(rval, "8/9"); // .8888...
- else
- strcat(rval, "9/10"); // .9
- }
- }
- }
- }
- }
- }
- return rval;
- }
Add Comment
Please, Sign In to add comment