C++中科学计数法输出浮点数怎样对齐小数点程序计算结果是两个浮点数a和b,b是a的误差范围,也就是需要表示成a±b的形式,由于a和b都远小于1所以用科学计数法输出.问题是怎样处理才能移动b的
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 12:46:23
C++中科学计数法输出浮点数怎样对齐小数点程序计算结果是两个浮点数a和b,b是a的误差范围,也就是需要表示成a±b的形式,由于a和b都远小于1所以用科学计数法输出.问题是怎样处理才能移动b的
C++中科学计数法输出浮点数怎样对齐小数点
程序计算结果是两个浮点数a和b,b是a的误差范围,也就是需要表示成a±b的形式,由于a和b都远小于1所以用科学计数法输出.
问题是怎样处理才能移动b的小数点位置,使b的整数位跟a保持一致?
比如结果为 a = 9.168e-3 b = 2.214e-5
怎样才能输出成 9.168±0.022 e-3 的形式呢?
C++中科学计数法输出浮点数怎样对齐小数点程序计算结果是两个浮点数a和b,b是a的误差范围,也就是需要表示成a±b的形式,由于a和b都远小于1所以用科学计数法输出.问题是怎样处理才能移动b的
int CountNeg(float a)
{
int n = 0;
while((a = a * 10) < 10)
++n;
return n;
}
void EOut(float a, float b)
{
if (a < b)
return;
int na = CountNeg(a);
int nb = CountNeg(b);
for(int i = 0; i < na; i++)
a *= 10;
for(int i = 0; i < nb - na; i++)
b *= 10;
printf("%f±%fE%d", a, b, na * -1);
}
int main()
{
float a = 9.168e-3, b = 2.214e-5;
EOut(a, b);
return 0;
}