简单的问题包含了复杂的东西(请大家指教)
float x=1.0f; x=x+1.0;//错误 这里的错误我能理解:java里float类型的变量或者数值从内存读出送给加法器进行运算前先要将变量的值转换成double类型,这样x+1.0运算好后的值为double,再要赋给float类型的x可能会丢失精确度,java不允许这样.
float x=1.0f; x+=1.0;//正确,为什么?
x+=1.0;这句话基本上所有书上说等价于:x=x+1.0; 真的完全等价吗?我觉得不是,至少它在机器硬件里运算时用的器件或者说运算时的步骤会不一样.请问谁能说说这2句语句有什么区别或者在机器里到底如何运行的吗?