天天看点

C++ Primer Plus P53 程序清单3.13(演示一些初始化的转换(对不同类型的转换的精度问题))——中职

C++ Primer Plus P53 程序清单3.13

演示一些初始化的转换(对不同类型的转换的精度问题)

/*
C++ Primer Plus P53 程序清单3.13
演示一些初始化的转换(对不同类型的转换的精度问题)
*/

//头文件
#include<iostream>

//主函数
int main(void)
{
	using namespace std;								//编译指令
	cout.setf(ios_base::fixed, ios_base::floatfield);	//强制输出为定点表示法

	float tree = 3;										//将整型赋给精度更高的单精度浮点型
	int guess = 3.9832;									//将双精度浮点型(默认浮点型为双精度)赋给精度更低的整型
	int debt = 7.2e12;									//将双精度e表示法的浮点型赋给精度更低的整型

	cout << "tree = " << tree << endl;					//输出转换后的tree值
	cout << "guess = " << guess << endl;				//输出转换后的guess值
	cout << "debt = " << debt << endl;					//输出转换后的debt值

	return 0;
}

/*
结果为:
tree = 3.000000											//正常
guess = 3												//没有四舍五入,进行截断
debt = 1634811904										//无法存储,错误显示。数值最大存储值时INT_MAX转到最小存储值INT_MIN继续加直到7.2E12结束
*/
           

注意,结果(不同环境下的debt的值不同):

tree = 3.000000											//正常
	guess = 3												//没有四舍五入,进行截断
	debt = 1634811904										//无法存储,错误显示。数值最大存储值时INT_MAX转到最小存储值INT_MIN继续加直到7.2E12结束
           

其中:

无法存储,错误显示。数值最大存储值时INT_MAX转到最小存储值INT_MIN继续加直到7.2E12结束。

感谢观看

再次感谢~

继续阅读