我正在为电阻编写一个类,我想给出一个公差数字,它会为该公差值吐出色带的颜色。我在其他int值上使用了相同的精确方法,但是这个 double 型不起作用,我也不知道为什么。谁能帮忙。我已经尝试过将'd'放在所有案例编号的末尾,以确保它们是 double 的,但这并不能解决问题,因此不会成为问题。
public static String toleranceColor(double tolerance)
{
String band1 = null;
switch (tolerance)
{
case 1: band1 = "BROWN"; break;
case 2: band1 = "RED"; break;
case 0.5: band1 = "GREEN"; break;
case 0.25: band1 = "BLUE"; break;
case 0.1: band1 = "VIOLET"; break;
case 0.05: band1 = "GREY"; break;
case 5: band1 = "GOLD"; break;
case 10: band1 = "SILVER"; break;
case 20: band1 = "NONE"; break;
default: band1 = "INVALID TOLERANCE"; break;
}
}
最佳答案
您的问题是您要在double
情况下尝试使用switch
。 switch
仅应用于离散值的问题,请考虑使用枚举代替或将值乘以100并将其转换为Integer
。
关于java - 在开关盒中使用 double 可能会失去精度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22081773/