vs使用C语言BUG(一):用双精度格式输出单精度出现错误

遇到问题

在VS中使用C语言时,遇到了一个问题,在主函数中定义了一个单精度类型数组,传递到双精度函数参数时,出现了问题,后经过测试,如果是单个数,则不会产生影响。所以在调用函数的过程中,一定要注意形参的数据类型一定要与变量对应上,否则会出现意想不到的结果。

问题复现

闲言少叙,直接上代码,这里写了一个数单精度转双精度和一个数组单精度转双精度的情况。

#include<stdio.h>

void N_float_to_double(double D_num);//声明函数
void A_float_to_double(double D_array[5]);//声明函数

void main()
{
	// 一个数-单精度转双精度
	float F_num = 0.39;
	printf("一个数在没经过转化前:%f\n", F_num);
	N_float_to_double(F_num);

	// 一个数组-单精度转双精度
	float F_array[5] = {0.1,0.2,0.3,0.4,0.5};
	printf("一个数组在没经过转化前:\n");
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		printf("%f\n", F_array[i]);
	}
	A_float_to_double(F_array);

	system("pause");
}

//一个数-单精度转双精度
void N_float_to_double(double D_num)
{
	printf("一个数在没经过转化后 : %lf\n", D_num);
}

//一个数组-单精度转双精度
void A_float_to_double(double D_array[5])
{
	printf("一个数组在没经过转化后 :\n");
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		printf("%lf\n", D_array[i]);
	}
}

测试结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a10b47c04f3b483097435d7329ef1234.png
可以看出一个数没有影响,但是数组这里就出现了问题,所以在调用函数时一定要注意保持参数类型一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值