我有一个方法可以创建一个文件大小的字符串来显示给用户。FindBugs 是说一个int 被转换成一个浮点数,然后传递给 Math.round。
public static String createFileSizeString(long size)
{
if (size < 1024)
{
return size + " bytes";
}
else if (size < 1048576)
{
return (Math.round(((size * 10) / 1024)) / 10) + " KB";
}
else
{
return (Math.round(((size * 10) / 1048576)) / 10) + " MB";
}
}
FindBugs 继续说:“这个操作应该始终是空操作,因为将整数转换为浮点数应该给出一个没有小数部分的数字。很可能是生成要传递给 Math 的值的操作。 round 旨在使用浮点运算来执行。”
它是如何无操作的?我应该添加一个明确的演员(size * 10) / 1024
表以便((float)size * 10) / 1024
出现吗?