3.3.3 运算错误:程序员の数学噩梦
1. 数据类型混搭:程序员の时尚灾难
当你把整数和浮点数强行凑成一对,就像让猫和狗一起跳探戈——可能勉强能看,但大概率会踩脚。编译器不会报警,但它会在心里默默吐槽:"这人到底懂不懂类型转换?"
**灵魂拷问**:
- 你确定那个`string + int`的拼接操作不会在深夜崩溃给你看?
- 把`boolean`当`integer`用的时候,有没有考虑过`true + false`可能等于"trufalse"?(别笑,JavaScript真干得出来)
2. 混合运算:薛定谔的精度
看看这个Java段子:
int 爱心 = 1;
int 分手 = 2;
int 结果 = 爱心 / 分手; // 程序员の爱情:50%变成0
System.out.println("我们的感情还剩:" + 结果);
**输出**:
我们的感情还剩:0
👉 教训:整数除法会无情抹去小数,就像老板抹去你的加班费。
3. 字长不同的数据类型搞暧昧
当`short`爱上`long`,结果可能是个`int`——编译器当红娘的时候总会自作主张。记得显式声明类型,否则你的`(short)32768`会变成`-32768`(惊喜不?)
4. 赋值の减肥惨案
把`double`塞进`float`,就像让姚明睡婴儿床——
float 体重 = 3.141592653589793; // 实际存储:3.1415927(系统帮你四舍五入)
**程序员の忏悔**:"我当初就该用`double`..."
5. 中间结果溢出:温水煮青蛙
import math
math.factorial(100) # 没问题
math.facto