您能否解释一下为什么行:
printf(“ Value%2.2e”,1201.0);
给出结果:Value 1.20e + 03
不仅是12.01e2?
我的想法:默认数字是1201.0,说明符告诉您数字后应有2个数字。
请向我解释哪里错了?
根据Wikipedia:
在归一化的科学计数法中,选择指数b使得a的绝对值至少为1但小于十(1≤| a | <10)。因此350被写为3.5×10 2。这种形式可以轻松比较数字,因为指数b给出了数字的数量级。在归一化表示法中,指数b对于绝对值在0到1之间的数字为负(例如,0.5表示为5×10 -1)。当指数为0时,通常会省略10和指数。归一化的科学形式是许多领域中大量表达的典型形式,除非需要非归一化形式,例如工程符号。标准化的科学记数法通常称为指数记数法,尽管后者更为笼统,并且也适用于a不限于范围1到10(例如在工程记数法中)和除10以外的底数(在3.15×2中)
20
)。
%e
格式使用科学符号,即小数点分隔符前的一位数字和一个用于缩放的指数。您无法使用此格式设置数字before
2
中的第一个"%2.2e"
是要打印的最小
#include <stdio.h>
void answer(void)
{
for (int i = 0; i != 3; i++)
putchar('.');
printf("\n%s\n", "https://en.wikipedia.org/wiki/Scientific_notation");
return;
}