Domanda

Sto cercando di dividere i numeri reali in un programma C utilizzando il punto decimale come il delimter tale che tale che dire, 1234.56 rendimenti

(int) whole_num = 1234 (Int) Frazione = 56

Tutte le idee come posso andare a fare questo? Il suo stato un po 'che non moooolto muck in giro con C, vedere? :)

È stato utile?

Soluzione

void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

Questo funziona poiché modf prende la parte intera del doppio e restituisce la parte frazionaria.

Altri suggerimenti

Supponendo che si desidera dividere una stringa.

strtok_r e il tuo preferito la funzione string-to-num come strtol

Se hai a che fare con un numero effettivo in virgola mobile, a differenza di una rappresentazione di stringa di tale, è necessario utilizzare modf per spaccare le parti integranti e frazionari.

split di Perl divide dalla regex, in modo da replicare la funzionalità completa avresti bisogno di una libreria di espressione regolare. Per general string-splitting, si può essere in grado di utilizzare strtok , ma perché cambia la stringa sul posto, strtok_r (descritto sulla stessa pagina) è consigliato invece.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top