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),ED94E46F-3552-4FC3-9A0A-B81533B0C47B.jpeg,代码,小,运行,第1张


文章版权声明:除非注明,否则均为猫屋博客MAOWUO.CN原创文章,转载或复制请以超链接形式并注明出处。

您需要 登录账户 后才能发表评论

发表评论取消回复

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,158人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码