Lisage meetod valueOf signatuuriga public static Lfraction valueOf (double df) , mis leiab reaalarvu df parima esituse murruna (vähima nimetajaga murd, mille väärtus on võrdne df-ga tüübi double täpsuse piires). Selgituseks: long-tüüpi täisarvude paar võimaldab murru arvväärtust kujutada palju täpsemalt kui double tüüp Javas, seega tuleks leida vähima nimetaja väärtusega murd m et kehtiks df==m.toDouble() täpselt.
Leidke märksõna "ahelmurdude meetod" abil sobiv algoritm. Mõned näited (kehtivad ainult Java long ja double tüüpide korral), mida testida:
0.0 : 0 / 1
0.125 : 1 / 8
-2.5 : -5 / 2
Math.PI: 245850922 / 78256779
Math.E: 325368125 / 119696244
Math.sqrt(2.): 131836323 / 93222358
...
3 / 1 22 / 7 333 / 106 355 / 113 103993 / 33102 104348 / 33215 208341 / 66317 312689 / 99532 833719 / 265381 1146408 / 364913 4272943 / 1360120 5419351 / 1725033 80143857 / 25510582 245850922 / 78256779 (viimane double täpsuse piires) 817696623 / 260280919 (liiga täpne double jaoks, ei lähene enam tegelikule pii väärtusele) ... 3857417000399352 / 1227853966360537 (siin tuleb vastu long tüübi piir)