// floatcnv.cpp : 定义控制台应用程序的入口点。
//
/* flaotcnv.c -- 不匹配的浮点数转换 */
/*
时间:2018年06月19日 00:06:49
代码:程序清单4.12_floatcnv.c程序_《C Primer Plus》P75
目的:了解_不匹配的浮点数转换_将输出千奇百怪的结果
*/
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
float n1 = 3.0;
double n2 = 3.0;
long n3 = 2000000000;
long n4 = 1234567890;
printf("%.1e %.1e %.1e %.1e\n", n1, n2, n3, n4);
printf("%ld %d\n", n3, n4);
printf("%ld %ld %ld %ld\n", n1, n2, n3, n4);
getchar();
return 0;
}
/*
在VS2010中运行结果:
-----------------------------------
3.0e+000 3.0e+000 3.1e+046 1.1e-307
2000000000 1234567890
0 1074266112 0 1074266112
------------------------------------------
总结:
混淆了整数和浮点类型时,结果是千奇百怪
------------------------------------------
*
原文地址:http://blog.51cto.com/13555061/2130379