Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

169
Visualizações
¿Hay alguna definición de cómo se redondean los valores de punto flotante evaluados en tiempo de compilación?

¿Existe alguna definición de cómo los valores de punto flotante evaluados en tiempo de compilación se redondean en C o C++? Fe cuando tengo double d = 1.0 / 3.0; ? Es decir, qué tipo de redondeo se realiza en tiempo de compilación.

¿Y hay una definición de cuál es el modo de redondeo predeterminado para un subproceso en tiempo de ejecución (C99's/C++11's fegetround() / fesetround() )?

¿Y el redondeo a valores enteros también está incluido en los últimos parámetros de configuración? Soy consciente de nearbyint() , pero esto se especifica para vincularse a los parámetros de redondeo que se pueden establecer mediante fesetround() . Lo que me preocupa es la conversión directa a un número entero.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En ambas especificaciones (C17 y C++20), el redondeo del tiempo de compilación está definido por la implementación.

En la especificación de C++, esto se especifica en lex.fcon , que dice

Si el valor escalado no está en el rango de valores representables para su tipo, el programa está mal formado. De lo contrario, el valor de un literal de punto flotante es el valor escalado si es representable, de lo contrario, el valor representable más grande o más pequeño más cercano al valor escalado, elegido de una manera definida por la implementación.

La especificación C tiene un lenguaje similar (cita tomada de N2176, borrador final C17):

el resultado es el valor representable más cercano, o el valor representable más grande o más pequeño inmediatamente adyacente al valor representable más cercano, elegido de una manera definida por la implementación.

También recomienda que la conversión del tiempo de traducción coincida con la conversión del tiempo de ejecución de las funciones de la biblioteca (como strtod ), pero no es obligatorio. Ver la descripción de los valores representables .

Las conversiones de valores de coma flotante a enteros se especifican en ambos para truncar (redondear hacia 0 descartando la parte fraccionaria).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda