Vedo due sezioni. Tutto prima del primo spazio è la sezione integrale. Tutto dopo il primo spazio è la sezione frazionale. Dopo aver separato le due sezioni, puoi semplicemente rimuovere gli spazi dalla sezione frazionale, dividere quella sezione sul carattere/e dividere la prima parte dalla seconda parte (se c'è una seconda parte). Quindi aggiungi il risultato alla sezione integrale per trovare la risposta.
Questo algoritmo dovrebbe fornire un risultato corretto per ciascuno dei campioni. Potrebbe anche dare un risultato errato per campioni come questi: "9 .25/4" o "9 3/0", quindi quelli sono cose da tenere d'occhio. Altre cose includono lo spazio bianco iniziale, se si desidera consentire altri spazi bianchi, simboli di valuta, se "9.25" (senza spazi) è un input valido e cosa fare con le frazioni irrazionali come "1/3", "1/10" (irrazionale in binario), ecc.
Normalmente non sono un grande sostenitore del design guidato da test (che dovresti scrivere prima i test e ottenere una copertura del 100%) per i linguaggi tipizzati staticamente, ma penso che i test unitari avere valore in determinate situazioni specifiche, e questa è una di quelle situazioni. Vorrei mettere insieme alcuni test sia per alcuni casi comuni che per quelli marginali, in modo tale da poter essere sicuri che qualsiasi cosa finisca con gestisca correttamente gli input per superare i test.
fonte
2012-01-06 17:16:07
Hai visto [questo] (http://stackoverflow.com/questions/7564906/convert-double-to-fraction-as-string-in-c-sharp) domanda ? – Bernard