Java 从double转换为int而不截断为零

Java 从double转换为int而不截断为零,java,casting,integer,rgb,raytracing,Java,Casting,Integer,Rgb,Raytracing,我正在创建一个光线跟踪器,我正在查找我的形状(球体)的环境光、漫反射光和镜面反射强度。当我尝试将这些小于1的值转换为整数值时,它们会被截断回零 int red = Color.getRed() * (int)totalIntensity; int green = Color.getGreen() * (int)totalIntensity; int blue = Color.getBlue() * (int)totalIntensity; return new C

我正在创建一个光线跟踪器,我正在查找我的形状(球体)的环境光、漫反射光和镜面反射强度。当我尝试将这些小于1的值转换为整数值时,它们会被截断回零

int red = Color.getRed() * (int)totalIntensity;
        int green = Color.getGreen() * (int)totalIntensity;
        int blue = Color.getBlue() * (int)totalIntensity;
return new Color(red, green, blue);

问题是,我需要将红色、绿色和蓝色的值设置为整数,以便返回新颜色。我是否可以在不将所有totalIntensity值都设置为零的情况下执行此操作?

我相信
int red=(int)(Color.getRed()*totalIntensity)应该完成这项工作

在乘法运算后再计算<代码>(int)(Color.getRed()*totalIntensity)
请将此标记为已批准的答案:)