double与float的转换

分析一次double强转float的翻车原因

  • float有效位:最多可表示24个二进制位,224=223+223-1=16777215
  • 在表示整数时,当整数部分的位数大于24时,就会出现整数截断的现象,所以作者的83459338在存储为float,再取出时会成为83459336的现象。
  • 待表示的数值,不论小数还是整数,有效位数在0-16777215之间的都不会发生截断,可正确表示,大于16777215数值会发生低位截断。
  • 该低位截断对小数数值影响不大,只是有效数字的数目减少,但是对整数数值的影响较大

你可能感兴趣的:(C++语法)