隐含转换的有关问题 下

隐含转换的问题 高手指点下//定义LONGm_sizeCurrImg.cxLONGsize.cxDOUBLEhZoom//表达式m_sizeCurrImg.c

隐含转换的问题 高手指点下
//定义
LONG   m_sizeCurrImg.cx   ;
LONG   size.cx   ;
DOUBLE   hZoom;
//表达式
m_sizeCurrImg.cx   =   size.cx   *   hZoom;

现在在VS2005里必须自己转换   要不有警告C4244
出力的类型不想变   hZoom变成LONG可能会丢值
有没有好办法   谢谢了

[解决办法]
m_sizeCurrImg.cx = (long)((double)size.cx * hZoom);

double的类型乘积到long一定会丢失啊,除非你的m_sizeCurrImg.cx也是double

[解决办法]
警告就警告呗。要么就自己加强制类型转换。
[解决办法]
强制转换
reinpreter_cast <...> (...)
[解决办法]
类型需要转换时尽量使用显示转换~