代码如下:
**不能理解C语言中的带小数的运算逻辑。为什么cm/30.48 的结果这么奇怪?求解运算逻辑?**
代码如下:
**不能理解C语言中的带小数的运算逻辑。为什么cm/30.48 的结果这么奇怪?求解运算逻辑?**
因为170/30.48结果是个double型
而你用%d输出的是int型,输出之前你又没有将结果强制转换成int,导致它把double型的前4个字节当做int输出
而你输出foot的时候就很正常,因为foot本身是int型,double已经隐式的转换为了int
这种丢失精度的转换在c++,c#等类似的语法中是不允许的,但是c中允许。