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结束。
感谢观看
再次感谢~