C语言中的小数 (float, double)

数字的后缀

一个数字,是有默认类型的:对于整数,默认是 int 类型;对于数,默认是 double 类型。

请看下面的例子:

long a = 100;

int b = 294;

float x = 52.55;

double y = 18.6;

100 和 294 这两个数字默认都是 int 类型的,将 100 赋值给 a,必须先从 int 类型转换为 long 类型,而将 294 赋值给 b 就不用转换了。

52.55 和 18.6 这两个数字默认都是 double 类型的,将 52.55 赋值给 x,必须先从 double 类型转换为 float 类型,而将 18.6 赋值给 y 就不用转换了。

如果不想让数字使用默认的类型,那么可以给数字加上后缀,手动指明类型:

在整数后面紧跟 l 或者 L(不区分大小写)表明该数字是 long 类型;

在小数后面紧跟 f 或者 F(不区分大小写)表明该数字是 float 类型。

请看下面的代码

long a = 100l;

int b = 294;

short c = 32L;

   

float x = 52.55f;

double y = 18.6F;

float z = 0.02;

加上后缀,虽然数字的类型变了,但这并不意味着该数字只能赋值给指定的类型,它仍然能够赋值给其他的类型,只要进行了一下类型转换就可以了。

对于初学者,很少会用到数字的后缀,加不加往往没有什么区别,也不影响实际编程,但是既然学了C语言,还是要知道这个知识点的,万一看到别人的代码这么用了,而你却不明白怎么回事,那就尴尬了。

关于数据类型的转换,我们将在《C语言数据类型转换》一节中深入探讨。

小数和整数相互赋值

在C语言中,整数和小数之间可以相互赋值:

将一个整数赋值给小数类型,在小数点后面加 0 就可以,加几个都无所谓。

将一个小数赋值给整数类型,就得把小数部分丢掉,只能取整数部分,这会改变数字本来的值。注意是直接丢掉小数部分,而不是按照四舍五入取近似值。

请看下面的代码:

#include <stdio.h>

int main(){

    float f = 251;

    int w = 19.427;

    int x = 92.78;

    int y = 0.52;

    int z = -87.27;

   

    printf("f = %f, w = %d, x = %d, y = %d, z = %d/n", f, w, x, y, z);

    return 0;

}

运行结果:

f = 251.000000, w = 19, x = 92, y = 0, z = -87

由于将小数赋值给整数类型时会“失真”,所以编译器一般会给出警告,让大家引起注意。C语言中的小数 (float, double)

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容