【算法代码】
#include <bits/stdc++.h>
using namespace std;int main() {int a=97;printf("%f\n",a); //0.000000printf("%f\n",(float)a); //97.000000
}/*
out:
0.000000
97.000000
*/
【算法分析】
● 强制类型转换
(1)强制类型转换是一种编程技术,允许在特定条件下将一个类型的值转换为另一个类型。
(2)在 C\C++ 语言中,强制类型转换的一般形式为 (类型说明符) (表达式),其中类型说明符指定了转换后的目标类型,而表达式则是待转换的原始值。
(3)强制类型转换并不总是安全的,可能导致数据丢失或改变值的语义。
● 不同类型的数据进行混合运算,需先转化为同一类型,然后进行运算。
转换从低级到高级。详见下表。
类型转换等级 |
低 ----------------------------→ 高 |
byte,short,char → int → long → float → double |
● 用 %f 格式化输出整数,会输出 0.000000。
● printf函数不会进行任何类型转换,它只是按照 %d,%f 等控制字符输出所提供的元素的值。