I am trying to set up an enum to hold sheet metal gauges (thicknesses). Right now I have:
using System.ComponentModel;
public enum Gauge
{
[Description("24 Gauge")]
G24 = 239,
[Description("20 Gauge")]
G20 = 359,
[Description("18 Gauge")]
G18 = 478,
[Description("16 Gauge")]
G16 = 598,
[Description("14 Gauge")]
G14 = 747
}
My question is: Does this seem like a good place to break the rule about not using non-integral types behind an enum?
The real world values are like .0239, .0359, .0478, etc. A floating point type would probably be very unreliable, but I was considering a Decimal type. Isn't it a 96 bit integer with the decimal place shifted behind the scenes? Would that should be a reliable value or am I just asking for trouble with this idea?