Есть ли простой способ вычислить десятичное значение в дроби?
Если вы ограничите свои десятичные значения определенным количеством десятичных знаков, вы можете создать справочную таблицу.
0.3333, 1/3
0.6666, 2/3
0.0625, 1/16
0.1250, 1/8
0.2500, 1/4
0.5000, 1/2
0.7500, 3/4
etc...
Так что, если пользователь вводит 0,5, вы дополняете его нулями, пока не получите 4 десятичных знака. Затем вы использовали бы таблицу поиска, чтобы вернуть «1/2». Таблица поиска, вероятно, должна быть своего рода словарем.
Оценивать тоже не сложно. Например, если пользователь ввел значение 0,0624, вы можете легко выбрать значение в таблице, ближайшее к этому десятичному числу. В этом случае будет возвращено «1/16.»
Не позволяйте вводу / вводу конечного набора десятичных / дробных пар вас пугать (это действительно не так уж и много в зависимости от выбранной вами точности).
Если ничего не поможет, поиск в Google покажет библиотеку, которая сделает это за вас.