小数是由整数和小数两部分组成,由点号.隔开,如0.23、0.444、23.67、-3.98等都是合法小数,属于十进制数。除此外,还有指数形式,如7.25103、0.035105、-27.36*10-3等。任何小数都可以用指数形式来表示。

在C语言中,小数的指数形式为:

aEn或aen

解释:a为尾数部分,是一个十进制数;n为指数部分,是一个十进制数;E或e是固定的字符,用于分割尾数部分和指数部分。整个表达式等价于

a*10n
2.1E5=2.1*105
3.7E-2=3.7*10-2
0.5E7=0.5*107

在C语言中,只有float和double两个小数类型,float被称为单精度浮点数型,double被称为双精度浮点数。小数的长度是固定的,float始终占用4个字节,double始终占用8个字节。

小数的printf()输出

通常对于小数的输出由十进制形式和指数形式,对应的格式控制符分别是:

%f 以十进制形式输出float类型;
%lf 以十进制形式输出double类型;
%e 以指数形式输出float类型,输出结果中的e小写;
%E 以指数形式输出float类型,输出结果中的E是大写;
%le 以指数形式输出double类型,输出结果中的e小写;
%lE 以指数形式输出double类型,输出结果中的E大写;

另外,还有一种更智能的printf()输出方式,就是使用%g,它会对比小数的十进制形式和指数形式,以最短的方式来输出小数,让输出结果更加简练,即输出结果占用最少的字符。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	float a = 0.302;
	float b = 128.101;
	double c = 123;
	float d = 112.64E3;
	double e = 0.7623e-2;
	float f = 1.23002398;

	printf("常规输出指数型小数:\n");
	printf("a=%e \nb=%f \nc=%lf \nd=%lE \ne=%lf \nf=%f\n", a, b, c, d, e, f);

	a = 0.00001;
	b = 30000000;
	c = 12.84;
	d = 1.229338455;
	printf("更加智能地输出指数型小数:\n");
	printf("a=%g \nb=%g \nc=%g \nd=%g\n", a, b, c, d);

	return 0;
}

小数指数python 小数指数的意义_十进制

数字的后缀

在C语言中,一个数字若无任何标识,那么它就是默认类型的;对于整数,默认是int类型,对于小数,默认是double类型。

long a = 100;
int b = 294;

float x = 52.55;
double y = 18.6;

在上面例子中,100和294属于默认int类型,但将100赋值给a时,必须先从int类型转换为long类型;52.55和18.6属于默认double类型,但将52.55赋值给x时,必须先将double类型转换为float类型。
所以,你可以手动在数值后面加上后缀,指明具体类型:
在整数后面加上l或L(不区分大小写)表明数值是long类型;
在小数后面加上f或F(不区分大小写)表明数值是float类型。