软件测试的艺术-第三节-003

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝花楹下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值