In the United States, the common price precision is two digits - for example, a mug costs $9.99 - except when it is not.
In the gas pump, it is three digits, for example, $2.499 per gallon
In some hardware stores, you would get $4.99 for 100 nails. So per "each" nail, the price is $0.0499. One option is model 100 nails as a unit of measure - say "hundreds" - but then what about 150 nails? Partial quantity, like 1.5 "hundreds" of nails, could be tricky. For example, if the price is $4.99 for 70 nails, so "seventy" is a unit of measure. Then how do you model 80 nails?
Per product price precision
Introduce per product price precision. By default, we still have a common price precision. On top of that, we can have override by product. In the gasoline case, it is three digits for gasoline, while two for everything else.
It is a simple solution, yet not perfect. If we take unit of measure into account, then it is possible that price precision can vary by unit of measure, the price for one nail can be $0.0499, but for a box (say 200 nails per box), you may want a different precision.
Before we go on with the complexity, ask yourself whether you really need it. In case you absolutely need it per unit of measure, we have two options.
- Model price precision per product per unit of measure
- Model price precision per product for the default unit of measure, and convert the precision when converting the unit of measure. (There may be some rounding of precision.)