Reputation: 1045
I have a variable of type decimal(26,16)
and i want to save a value with 12 digits before decimal point and 14 digits after it, but it raises an "Arithmetic overflow error converting numeric to data type numeric". when i define a variable of this type, what does it really mean? it means it can only store values with 10 digits before and 16 digits after decimal point respectively or something else?
Upvotes: 0
Views: 1406
Reputation: 4978
The maximum total number of decimal digits that can be stored, both to the left and to the right of the decimal point. The precision must be a value from 1 through the maximum precision of 38. The default precision is 18.
precision means the maximum number of digit you can use.
scale means the maximum number of digit you can use after decimal(.)
refer this... http://msdn.microsoft.com/en-us/library/ms187746.aspx
Upvotes: 0
Reputation: 44346
The highest number you can have in a decimal(26,16) is 9999999999.9999999999999999.
So when you try to store a 12 digit number it will to overflow
Try a decimal(28,16) instead
Upvotes: 1