Dealing with "numeric"s right now in cases where it's really important that the scale is correct is quite painful. For example, if I want to accept a EUR amount as an input, I often want to reject values such as '21.413', but I'd be fine with e.g. '21.410000'. My suggestion is to add two functions: one to return the number of decimal places in a numeric, and another one to remove non-significant decimal places. These two functions are useful on their own, and when combined allow you to look at the number of significant decimal places in a numeric.