válido variable valor siguientes siguiente separadores programacion nombre literales literal lenguaje las enteros cuál cadenas c++ c literals floating-point-precision

c++ - valor - ¿cuál de las siguientes cadenas es un nombre de variable válido ?



¿Cuál es el sufijo C++ para literales dobles largos? (3)

Del Estándar C ++

El tipo de un literal flotante es doble a menos que se especifique explícitamente por un sufijo. Los sufijos f y F especifican float, los sufijos l y L especifican long double.

Es interesante comparar con el párrafo correspondiente de la Norma C. En C se usa un término floating constant lugar de floating literal en C ++:

4 Una constante flotante unsuffixed tiene un tipo double. Si tiene el sufijo por la letra f o F, tiene tipo float. Si tiene el sufijo por la letra l o L, tiene un tipo largo doble

En C ++ (y C), un literal de punto flotante sin sufijo se predetermina a double , mientras que el sufijo f implica un float . Pero, ¿cuál es el sufijo para obtener un long double ?

Sin saber, definiría, por ejemplo,

const long double x = 3.14159265358979323846264338328;

Pero mi preocupación es que la variable x contiene menos bits significativos de 3.14159265358979323846264338328 que 64, porque este es un double literal. ¿Está justificada esta preocupación?


El sufijo C es L Sospecho fuertemente que es lo mismo para C ++.

Tu preocupación está justificada. Su literal primero se convertiría en un double , y por lo tanto se truncaría, y luego se convertiría en long double .


Su preocupación es válida y debe usar un sufijo L para doble literal largo.