Pregunta

Estoy tratando de dividir números reales en un programa en C usando el punto decimal como el delimter tal que tal que decir, 1234,56 rendimientos

(int) = 1234 whole_num (Int) = fracción 56

¿Alguna idea de cómo puedo ir haciendo esto? Ha sido un muuuucho tiempo desde que mucked alrededor con C, ver? :)

¿Fue útil?

Solución

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

Esto funciona ya que modf toma la parte entera de la doble y devuelve la parte fraccionaria.

Otros consejos

Si se asume que desea dividir una cadena.

strtok_r y su función de favoritos cadena-a-num como strtol

Si usted está tratando con un número de coma flotante real, en contraposición a una representación de cadena de este tipo, se debe usar modf para la división de las partes integrantes y fraccionarios.

split de Perl se divide por la expresión regular, por lo que para replicar la funcionalidad completa que había necesidad de una biblioteca de expresiones regulares. Para cadena de reparto en general, es posible que pueda usar strtok , pero debido a que cambia la cadena en el lugar, se recomienda strtok_r (descrito en la misma página) en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top