必须在小数点后正好显示五位数。如果数字为0则仅显示0而不是0.00000。如果数字在其十进制记录中有零,则仅显示零以外的数字,例如0.08500而不是输出0.085 // s0是我的变量
if (s0==) cout<<"0"
else cout<<setiosflags(ios::fixed)<<setprecision(5)<<s0;
答案 0 :(得分:2)
尝试:
var results = DealerTFNDatesTable
.GroupBy(x => new { x.AffiliateID, x.Date })
.Select(x => new DailySummary {
AffiliateID = x.First().AffiliateID,
Date = x.First().Date,
TotalCalls = x.Sum(y => Convert.ToInt32(y.TotalCalls)).ToString()
});
在您的版本foreach (var x in results) {
Console.WriteLine($"id = {x.AffiliateID}, date = {x.Date}, totalCalls = {x.TotalCalls}");
}
> id = 0, date = 12/12/2016, totalCalls = 68
> id = 0, date = 12/13/2016, totalCalls = 74
> id = 1, date = 12/22/2016, totalCalls = 63
中强制尾随零。
答案 1 :(得分:0)
这似乎很明显,但你能使用printf吗?
#include <stdio.h>
int main(){
printf("%5.3f", 0.8500000000);
return 0;
}
答案 2 :(得分:0)
你不能用C ++和&lt;&lt;在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";
答案 3 :(得分:0)
std :: cout&lt;&lt; std :: setprecision(5)&lt;&lt; S0; 这是设置精度的最佳方法。