sirve setprecision que para float comando c++ floating-point-precision

float - setprecision c++ para que sirve



Uso correcto de std:: cout.precision()-no imprime ceros finales (3)

El comportamiento es correcto. El argumento especifica la cantidad máxima significativa de dígitos a usar. No es un mínimo. Si solo siguen los ceros, no se imprimen porque los ceros al final de una parte decimal no son significativos. Si desea que se impriman los ceros, debe establecer los indicadores apropiados:

std::cout.setf(std::ios::fixed, std::ios::floatfield);

Esto establece la notación en "fijo", que imprime todos los dígitos.

Veo muchas preguntas sobre el número de precisión para los números de punto flotante, pero específicamente quiero saber por qué este código

#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a/(float)b << "/n"; return 0; }

muestra 0.5 ? Espero ver 0.5000 . ¿Es debido a los tipos de datos enteros originales?


std::cout.precision(4); indica el número máximo de dígitos que se debe usar, no el mínimo. eso significa, por ejemplo, si usas

precision 4 on 1.23456 you get 1.234 precision 5 on 1.23456 you get 1.2345

Si desea obtener n dígitos en todo momento, tendría que usar std::fixed .


#include <iostream> #include <stdlib.h> #include <iomanip> int main() { int a = 5; int b = 10; std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a/(float)b << "/n"; return 0; }

std::fixed pasar std::fixed manipulator a cout para mostrar los ceros finales.