分类：电脑/网络-程序设计
问题：在c语言中：printf("%d\n",1.0/3*3);pri? 
在中：printf("%d\n",1.0/3*3);printf("%f\n",1.0/3*3);printf("%d\n",1/3*3);printf("%f\n",1/3*3)；结果为：0,1.000000,0,0.000000求解释？
回答：这要看java的数字精度了
java中，数字精度：byte、int、 long、float、double依次递增
因此他们之间的转换时可以向上自动转换的，但是想先转换时是强制的，当然就会损失精度
默认情况下，小数系统会转换double，
因此：1/3*3，系统自动按照整形处理，结果也是整形，结果就是0，所以3、4显示自然回0，只是第四个系统转动转换为f了
2当然就是小数，显示结果就是小数
1就要转换了，当然就会损失精度，她的计算结果是：0.9999999，转换为整形损失了