Вывести число с тремя знаками после запятой в С++
#include<iomanip.h>
#include<iostream.h>
void main{
float a = 3.1415926;
cout << endl << a;
cout << endl << setprecision(3) << a;
}
Можешь поставить мне пять

Только preсision - это как бы точность, которая говорит сколько всего знаков (а не после запятой) - это невсегда удобно.
У меня на Борланд Си++ 3.1 тот пример выводит число 3.142, то есть 3 - число знаков после запятой.
Может, он работает по-разному под разными платформами?
Достаточно одного <iostream.h>.
А вот как сделать, чтобы выводилось с определенной точностью после запятой - я не знаю.
Может действительно от платформы зависит.
//Тогда сначала узнаем, сколько в числе знаков левее запятой
float c=a;
for(int b=0; c>=1; b++){
c/=10;
}
//печатаем
cout << setprecision(b+3) << a;
В таком случае будет напечатано нужное кол-во знаков после запятой, а именно 3.
Видишь - лишний код появился.
И с>=1(а не с>1) - это правильнее.
Да, ты прав в обоих случаях.
Ну ладно, мне надо бежать. Если что-то будет новое по поводу моего последнего поста, пишите.

попробуй так:
{char buf[10]; sprintf(buf, "%.3f", a); stream << buf;}
по-моему, это какое-то извращение
вполне разумно: если тебе надо поместить число в поток в определенном формате, то можно его сначала перевести в строку, а потом в поток записать эту строку
Похожие темы:
Оставить комментарий
Welcome
нужно вывести число с тремя знаками после запятой .в си это printf("%.3f",num);
как сделать то же самое в с++ с помощью потоков?