关于C语言里的常识“为什么是0.00”

刚才在C语言里试过,1/3=0.00 但1.0/3=0.33
这是为什么?

#include〈stdio.h〉
int main()

printf(“%.2f”,1.0/3);
return 0;

  • 1/3 这是两个整数相除,数学结果为0.33,但因为两个都是整数,它的结果也应该是整数,数学结果的小数部分在存储上会丢弃掉,也就是最后结果为0。
  • 1.0 /3 这就是浮点数除以整数,结果当然还是浮点数了

在不考虑转型下,整数与整数进行运算时结果必然是整型,当其中有一个是浮点型才会得到浮点型。
举个栗子,1 / 2 ,“1”和“2”都是整型,所以只能得到整型,不是0.5,整数位是0所以只能取0。
如果把“1”换成“1.0”,就包含了浮点型,这时候1.0 / 2 结果就是浮点型,0.5就符合了