今天用VC6编程的时候,为文本框构建了一个float的变量m_fFreq,

  然后计算他:int value  = m_fFreq *100-100000;

  当m_fFreq为1000.01,1000.02,1000.03的时候,得出来的value 值是对的,为1,2,3。

  当m_fFreq为1000.04时,value竟然也为3!  好像是精度问题不对,将m_fFreq改为double变量即可.

  (1000.04*100-100000=3.9956,转化为int就变成了3)

 

   今天测试了下,仍然不行。查了下四舍五入的函数,发现VC没得round函数,只好加0.5再取整了。

  int value  = (int)(m_fFreq *100-100000 +0.5);

 OK! 搞定,竟然遇到这么个问题,看来计算机的精度处理还是有些问题的。