为什么用int不会溢出用float会溢出

来源:5-14 综合练习

竹魅

2017-08-03 11:22

#include <stdio.h>
float money(int t,int d)
{
    
	float pay;
	if(d<=3)
		pay=13+1;
    else
		if(t>=5||t<23)
			pay=(d-3)*2.3+13+1;
		else
			pay=(d-3)*2.3*(1+0.2)+13+1;
    return pay;
}
int main()
{
    float sum;
	sum=money(9,12)+money(18,12);
    printf("小明每天打车费用为%d元。",sum);
    return 0;
}

main函数里sum用int定义可以正常运行,但是用float的时候会溢出


写回答 关注

1回答

  • 慕用9414856
    2017-08-03 17:59:47

    1.int和float首先明白其本质是数据类型,何为数据类型,其实其名字就告诉我们,像我们学习时喜欢把整数和小数分开一样,这里的int是整数类型,float是浮点数(小数类型)。这不就是俩种数据类型

    2.那么为什么要区分那,主要原因是计算机在存储数据时分配的内存空间是不同的,你定义了int(整型)它就分配对应整型的大小,比如4个内存单元。

    3.那么我为什么要说比如是4个内存单元那,原因是不同的cpu分配内存是不一样的,32位cpu分配的int就是4个字节,至于为什么如此,这是硬件设计时决定的(32位/8=4字节)(不理解跳过)

    4.综上所述,你应该明白你定义的每一个变量都会分配一块内存,并且分配内存的大小是取决于你的数据类型的


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926215 学习 · 20797 问题

查看课程

相似问题