该数字必须在小数点后显示5位数字。如果数字为0,则只显示0而不显示0.00000。如果数字零在他的小数记录只显示其他数字大于零,例如0.08500,而不是输出0.085 // S0是我的变量在C++中显示小数点后的五位数字,但如果小数点后面有0,则不要打印它们
if (s0==) cout<<"0"
else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0;
该数字必须在小数点后显示5位数字。如果数字为0,则只显示0而不显示0.00000。如果数字零在他的小数记录只显示其他数字大于零,例如0.08500,而不是输出0.085 // S0是我的变量在C++中显示小数点后的五位数字,但如果小数点后面有0,则不要打印它们
if (s0==) cout<<"0"
else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0;
尝试:
std::cout << std::setprecision(5) << s0;
在你setiosflags(ios::fixed)
版本迫使尾随零。
它的工作原理。万分感谢。 :) –
@ElizMazalova请标记此答案为接受,如果它已经回答了你的问题。这将其从未解答的问题列表中移除,并使其他人能够成功地谷歌搜索。 –
这似乎很明显,但你可以使用printf吗?
#include <stdio.h>
int main(){
printf("%5.3f", 0.8500000000);
return 0;
}
这个问题似乎是特定于C++。 (也就是说,由标签判断)。 –
你不能轻易做它在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; 这是设置精度的最佳方法。
你有什么问题(除非法条件)?对于's0'的某个特定值,预期和实际*输出是什么? –
预期:0.085但我的代码打印:0.08500 –
如果s0恰好为0或只要输出为“0.00000”,即如果s0碰巧<0.00001,您是否只想打印“0”? – Oncaphillis