Pergunta

Eu estou tentando dividir números reais em um programa C usando o ponto decimal como o delimter tal que tais que dizem: 1234.56 rendimentos

(int) whole_num = 1234 (Int) = fracção 56

Alguma idéia de como eu posso ir sobre fazer isto? Tem sido um loooong tempo desde que eu muck ao redor com C, ver? :)

Foi útil?

Solução

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

Isso funciona desde modf toma a parte inteira do casal e retorna a parte fracionária.

Outras dicas

Assumindo que você quer dividir uma string.

strtok_r e sua função favorita corda-de-num como strtol

Se você está lidando com um número real de ponto flutuante, em oposição a uma representação de cadeia de tal, você deve usar modf para dividir as partes integrantes e fracionários.

splits split do Perl por regex, de modo a replicar a funcionalidade completa você precisaria de uma biblioteca regex. Para corda-splitting geral, você pode ser capaz de usar strtok , mas porque muda a corda no local, strtok_r (descrito na mesma página) é recomendado em vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top