C++ 在c+中小数点后显示五位数字+;但如果小数点后有0,则don';不要打印它们

C++ 在c+中小数点后显示五位数字+;但如果小数点后有0,则don';不要打印它们,c++,decimal,cout,digits,C++,Decimal,Cout,Digits,数字必须显示在小数点后五位。如果数字为0,则仅显示0而不是0.00000。如果数字在十进制记录中有零,则只显示除零以外的数字,例如0.08500,而不是输出0.085 //s0是我的变量 if (s0==) cout<<"0" else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0; if(s0==)cout尝试: std::cout试试: 看起来很明显,但是你能用printf吗 #incl

数字必须显示在小数点后五位。如果数字为0,则仅显示0而不是0.00000。如果数字在十进制记录中有零,则只显示除零以外的数字,例如0.08500,而不是输出0.085 //s0是我的变量

if (s0==) cout<<"0"
else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0;
if(s0==)cout尝试:

std::cout试试:


看起来很明显,但是你能用printf吗

#include <stdio.h>

int main(){

    printf("%5.3f", 0.8500000000);
    return 0;
}
#包括
int main(){
printf(“%5.3f”,0.850000000);
返回0;
}

这似乎很明显,但您可以使用printf吗

#include <stdio.h>

int main(){

    printf("%5.3f", 0.8500000000);
    return 0;
}
#包括
int main(){
printf(“%5.3f”,0.850000000);
返回0;
}

在C++中,您不能轻易地用流和在C++中使用流和 STD::CUT

STD::CUT,并且您的代码有什么问题(除了非法条件),您不容易做到这一点吗?对于

s0的某些特定值
预期和实际输出是什么?预期值:0.085,但我的代码打印值:0.08500如果s0正好为0,您是否只想打印“0”,或者当您的输出为“0.00000”时,即如果s0恰好为0,并且您的代码有什么问题(除了非法条件)?对于
s0的某些特定值
预期和实际输出是什么?预期值:0.085,但我的代码打印:0.08500如果s0正好为0,您是否只想打印“0”,或者当您的输出为“0.00000”时,即如果s0恰好为@ElizMazalova,请在回答您的问题时将此答案标记为已接受。这会将其从未回答问题列表中删除,并使其他人能够成功地用谷歌搜索。@ElizMazalova如果回答了您的问题,请将此答案标记为已接受。这将从未回答的问题列表中删除,并使其他人能够成功地谷歌。这个问题似乎是针对C++的。(同样,CUT,根据标签来判断)这个问题似乎是针对C++的。(同样,cout,根据标签判断)。
 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";