[英]Show five digits after decimal point in c++ but if there are 0 after decimal point don't print them
该数字必须精确显示在小数点后五位。 如果数字为0,则仅显示0而不是0.00000。 如果该数字在其十进制记录中为零,则仅显示非零的数字,例如0.08500而不是输出0.085 // s0是我的变量
if (s0==) cout<<"0"
else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0;
尝试:
std::cout << std::setprecision(5) << s0;
在您的版本中, setiosflags(ios::fixed)
强制尾随零。
看起来很明显,但是您可以使用printf吗?
#include <stdio.h>
int main(){
printf("%5.3f", 0.8500000000);
return 0;
}
在C ++中,使用流和<<运算符很难做到这一点,因为0是特例。
写一个函数
std::string tonice(double x)
{
char buff[64];
if(x == 0)
sprintf(Buff, "0");
else
sprintf(buff, "%5.3f", x);
return std;string(buff);
}
然后
cout << "The data is " << tonice(x) << " other bits and bats";
std :: cout << std :: setprecision(5)<< s0; 这是设置精度的最佳方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.