最近在做RGB 颜色处理的时候,因业务需求需要对颜色进行除法处理,发现转换处理后的数据存到数据后变为 0,分析后发现原因是 “在整形数据之间使用时,如果两个数均为整形时,会把小数部分舍弃掉,只取整数部分”;
整型之间 ,会把小数部分舍弃,比如:128/255 = 0
浮点型之间,结果是浮点型数据,比如 11/3 = 3.66666666666667,使用Convert.ToInt32 对数据进行四舍五入的处理, 使用Math.Floor() 进行取整处理
整型和浮点型之间,结果也会是浮点型
整型和整型,想保留小数部分 ,需要浮点型转换
在很多业务场景中 整型之间相除 是不想把小数部分舍弃掉的,楼主遇到的情况,
此时只需把其中一个整型数据转为浮点型就可以啦
(float)128/255 = 0.5019608
如果不加float 转换 ,结果直接取整处理了
128/255 = 0
信息加载中,请等待
微信客服(速回)
微信客服(慢回)