Guest User

Untitled

a guest
Jun 22nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.79 KB | None | 0 0
  1. char *userTextForDouble(double d, char *rval)
  2. {
  3. if (d == 0.0)
  4. return "0";
  5.  
  6. // TODO: negative numbers:if (d < 0.0)...
  7. if (d >= 1.0)
  8. sprintf(rval, "%.0f ", floor(d));
  9. d = d-floor(d); // now only the fractional part is left
  10.  
  11. if (d == 0.0)
  12. return rval;
  13.  
  14. if( d < 0.47 )
  15. {
  16. if( d < 0.25 )
  17. {
  18. if( d < 0.16 )
  19. {
  20. if( d < 0.12 ) // Note: fixed from .13
  21. {
  22. if( d < 0.11 )
  23. strcat(rval, "1/10"); // .1
  24. else
  25. strcat(rval, "1/9"); // .1111....
  26. }
  27. else // d >= .12
  28. {
  29. if( d < 0.14 )
  30. strcat(rval, "1/8"); // .125
  31. else
  32. strcat(rval, "1/7"); // .1428...
  33. }
  34. }
  35. else // d >= .16
  36. {
  37. if( d < 0.19 )
  38. {
  39. strcat(rval, "1/6"); // .1666...
  40. }
  41. else // d > .19
  42. {
  43. if( d < 0.22 )
  44. strcat(rval, "1/5"); // .2
  45. else
  46. strcat(rval, "2/9"); // .2222...
  47. }
  48. }
  49. }
  50. else // d >= .25
  51. {
  52. if( d < 0.37 ) // Note: fixed from .38
  53. {
  54. if( d < 0.28 ) // Note: fixed from .29
  55. {
  56. strcat(rval, "1/4"); // .25
  57. }
  58. else // d >=.28
  59. {
  60. if( d < 0.31 )
  61. strcat(rval, "2/7"); // .2857...
  62. else
  63. strcat(rval, "1/3"); // .3333...
  64. }
  65. }
  66. else // d >= .37
  67. {
  68. if( d < 0.42 ) // Note: fixed from .43
  69. {
  70. if( d < 0.40 )
  71. strcat(rval, "3/8"); // .375
  72. else
  73. strcat(rval, "2/5"); // .4
  74. }
  75. else // d >= .42
  76. {
  77. if( d < 0.44 )
  78. strcat(rval, "3/7"); // .4285...
  79. else
  80. strcat(rval, "4/9"); // .4444...
  81. }
  82. }
  83. }
  84. }
  85. else
  86. {
  87. if( d < 0.71 )
  88. {
  89. if( d < 0.60 )
  90. {
  91. if( d < 0.55 ) // Note: fixed from .56
  92. {
  93. strcat(rval, "1/2"); // .5
  94. }
  95. else // d >= .55
  96. {
  97. if( d < 0.57 )
  98. strcat(rval, "5/9"); // .5555...
  99. else
  100. strcat(rval, "4/7"); // .5714
  101. }
  102. }
  103. else // d >= .6
  104. {
  105. if( d < 0.62 ) // Note: Fixed from .63
  106. {
  107. strcat(rval, "3/5"); // .6
  108. }
  109. else // d >= .62
  110. {
  111. if( d < 0.66 )
  112. strcat(rval, "5/8"); // .625
  113. else
  114. strcat(rval, "2/3"); // .6666...
  115. }
  116. }
  117. }
  118. else
  119. {
  120. if( d < 0.80 )
  121. {
  122. if( d < 0.74 )
  123. {
  124. strcat(rval, "5/7"); // .7142...
  125. }
  126. else // d >= .74
  127. {
  128. if(d < 0.77 ) // Note: fixed from .78
  129. strcat(rval, "3/4"); // .75
  130. else
  131. strcat(rval, "7/9"); // .7777...
  132. }
  133. }
  134. else // d >= .8
  135. {
  136. if( d < 0.85 ) // Note: fixed from .86
  137. {
  138. if( d < 0.83 )
  139. strcat(rval, "4/5"); // .8
  140. else
  141. strcat(rval, "5/6"); // .8333...
  142. }
  143. else // d >= .85
  144. {
  145. if( d < 0.87 ) // Note: fixed from .88
  146. {
  147. strcat(rval, "6/7"); // .8571
  148. }
  149. else // d >= .87
  150. {
  151. if( d < 0.88 ) // Note: fixed from .89
  152. {
  153. strcat(rval, "7/8"); // .875
  154. }
  155. else // d >= .88
  156. {
  157. if( d < 0.90 )
  158. strcat(rval, "8/9"); // .8888...
  159. else
  160. strcat(rval, "9/10"); // .9
  161. }
  162. }
  163. }
  164. }
  165. }
  166. }
  167.  
  168. return rval;
  169. }
Add Comment
Please, Sign In to add comment