Who and what determines when precision is necessary?
B.1.1.3.1.2 Decimal
A decimal data element may contain an explicit decimal point and is used for numeric
values that have a varying number of decimal positions. This data element type is
represented as "R."
The decimal point always appears in the character stream if the decimal point is at any
place other than the right end. If the value is an integer (decimal point at the right end)
the decimal point must be omitted. For negative values, the leading minus sign (-) is
used. Absence of a sign indicates a positive value. The plus sign (+) must not be
transmitted.
Leading zeros must be suppressed unless necessary to satisfy a minimum length
requirement. Trailing zeros following the decimal point must be suppressed unless
necessary to indicate precision. The use of triad separators (for example, the commas
in 1,000,000) is expressly prohibited. The length of a decimal type data element does
not include the optional leading sign or decimal point.
EXAMPLE
A transmitted value of 12.34 represents a decimal value of 12.34.
While the ASC X12 standard supports usage of exponential notation, this guide prohibits
that usage.
For implementation of this guide under the rules promulgated under the Health Insurance
Portability and Accountability Act (HIPAA), decimal data elements in Data Element 782
(Monetary Amount) will be limited to a maximum length of 10 characters including reported
or implied places for cents (implied value of 00 after the decimal point). Note the statement
in the preceding paragraph that the decimal point and leading sign, if sent, are not part
of the character count.
EXAMPLE
For implementations mandated under HIPAA rules:
• The following transmitted value represents the largest positive dollar amount that can
be sent: 99999999.99
• The following transmitted value is the longest string of characters that can be sent
representing whole dollars: 99999999
• The following transmitted value is the longest string of characters that can be sent
representing negative dollars and cents: -99999999.99
• The following transmitted value is the longest string of characters that can be sent
representing negative whole dollars: -99999999