隐含转换的问题 高手指点下//定义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 <...> (...)
[解决办法]
类型需要转换时尽量使用显示转换~
