Computer history has provided us with a growing number of numeric data types, and quite a few of them are reflected in Edm primitive types.
Integer types:
- Byte (0..2^8)
- SByte
- Int16
- Int32
- Int64
- Decimal Scale=0
Fixed-point types
- Decimal with VariableScale="false", see
ODATA-76
Floating-point types
- Decimal with VariableScale="true", see
ODATA-76 - Single
- Double
Especially for defining vocabularies it would be helpful to have an abstract type Edm.Number that can be applied to any of the numeric primitive types.
I was going to enter this same issue, for tracking purposes, although I propose we NOT do this. Most implementations have the concept of a 16, 32, or 64 bit integer and it's actually simpler to have the discrete types that reflect those common types than to attempt to define through facets (i.e., MaxValue on a Double, are not straightforward to represent.)