繁体   English   中英

在c ++中显示小数点后五位数字,但如果小数点后有0,请不要打印

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM