float 到底代表什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:17:11
输入三个数,按小到大输出。
main()
{ float a,b,c,t;
scanf("%f,%f,%f",&a,&b.&c); 4 2 1
if (a>b)
{t=a;a=b;b=t;} 2 4 1
if (a>c)
{t=a;a=c;c=t} 1 4 2
if (b>c)
{t=b;b=c;c=t;} 1 2 4
printf("%f,%f,%f",a,b.c);
}
这是我在网上见到的一个程序,但我纳闷了,"float"不是代表实型变量么,可这4,2,1都是整数啊,这个怎么解释?我是新手,大家见谅!

float 类型
  浮点数使用 IEEE(电气和电子工程师协会)格式。 浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。 尾数表示一个介于 1.0 和 2.0 之间的数。 由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。 此表示形式为 float 类型提供了一个大约在 3.4E–38 和 3.4E+38 之间的范围。
  可根据应用程序的需求将变量声明为 float 或 double。 这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。
  参考资料:https://msdn.microsoft.com/zh-cn/library/hd7199ke.aspx

楼主,float虽然是浮点运算符,但是,输入4,2,1,就代表输入了4.00000 2.0000000 1.00000这么个意思。(小数点后的0的位数我象征性质的点的),你用int 也行, 只不过这个程序你不光可以输入 4,2,1,你还能输入1.5 6.9什么的。不用在这方面较真

float是实型也称为浮点型。
它有二种形式: 十进制数形式指数形式
1.十进制数形式
由数码0~ 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。
2.指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 (等于0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点) E7 (阶码标志E之前无数字) -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E