Partilhar via


Conversões de tipos de ponto flutuante

A float valor convertido em um double ou long double, ou um double convertido em um long double, passa por nenhuma alteração no valor.A double valor convertido em um float valor é representado exatamente, se possível.Precision pode ser perdido se o valor não pode ser representado exatamente.Se o resultado está fora do intervalo, o comportamento é indefinido.Consulte limites sobre constantes de ponto flutuante para o intervalo de tipos de ponto flutuante.

Um valor flutuante é convertido para um valor inteiro, convertendo primeiro para um longo, depois do longo valor ao valor integral específico.A parte decimal do valor flutuante é descartada na conversão em um longo.Se o resultado ainda é muito grande para caber em um longo, o resultado da conversão é indefinido.

Específicos do Microsoft

Ao converter uma double ou long double o número de ponto flutuante para um menor número de ponto flutuante, o valor da variável de ponto flutuante será truncado em direção a zero quando ocorrerá um estouro negativo.Um estouro causará um erro de tempo de execução.Observe que o compilador Microsoft C mapeia long double digitar double.

Específicos do Microsoft final

A tabela a seguir resume as conversões de tipos de flutuante.

Conversões de tipos de ponto flutuante

From

Para

Método

float

char

Converter em longo; converter longo parachar

float

short

Converter em longo; converter longo para curto

float

long

Truncar no ponto decimal.Se o resultado é muito grande para ser representado como longo, resultado é indefinido.

float

unsigned short

Converter em longo; convert long to unsigned short

float

unsigned long

Converter em longo; convert long to unsigned long

float

double

Alterar a representação interna

float

long double

Alterar a representação interna

double

char

Converter em float; converter float parachar

double

short

Converter em float; converter float para curto

double

long

Truncar no ponto decimal.Se o resultado é muito grande para ser representado como longo, resultado é indefinido.

double

unsigned short

Converter em longo; converter longo para unsigned short

double

unsigned long

Converter em longo; convert long to unsigned long

double

float

Representar como um float.Se double valor não pode ser representada exatamente como float, ocorre a perda de precisão.Se valor for muito grande para ser representado como float, o resultado é indefinido.

long double

char

Converter em float; converter float parachar

long double

short

Converter em float; converter float para curto

long double

long

Truncar no ponto decimal.Se o resultado é muito grande para ser representado como longo, resultado é indefinido.

long double

unsigned short

Converter em longo; convert long to unsigned short

long double

unsigned long

Converter em longo; convert long to unsigned long

long double

float

Representar como um float.Se double valor não pode ser representada exatamente como float, ocorre a perda de precisão.Se valor for muito grande para ser representado como float, o resultado é indefinido.

long double

double

O longodouble valor é tratado como double

Conversões de float, double, ou long double valores a unsigned long não são precisos, se o valor que está sendo convertido é maior do que o máximo positivo longo valor.

Consulte também

Conceitos

Conversões de atribuição