specified as a binary field, this would select a 16-bit signed type on most platforms. Smalltalk automatically chooses an appropriate representation for integral numbers. Typically, two representations are present, one for integers fitting the native word size minus any tag bit () and one supporting arbitrary sized integers (). Arithmetic operations support polymorphic arguments and return the result in the most appropriate compact representation. Ada range types are checked for boundary violations at run-time (as well as at compile-time for static expressions). Run-time boundary violations raise a "constraint error" exception. Ranges are not restricted to powers of two. Commonly predefined Integer subtypes are: Positive (range 1 .. Integer'Last) and Natural (range 0 .. Integer'Last). (8 bits), (16 bits) and (64 bits) are also commonly predefined, but not required by the Ada standard. Runtime checks can be disabled if performance is more important than integrity checks. Ada modulo types implement modulo arithmetic in all operations, i.e. no range violations are possible. Modulos are not restricted to powers of two. Commonly used for characters like Java's char. in PHP has the same width as type in C has on that system. Erlang is dynamically typed. The type identifiers are usually used to specify types of record fields and the argument and return types of functions. When it exceeds one word. Floating point The standard constants and can be used to determine how many s and s can be usefully prefixed to and . The actual sizes of , , and are available as the constants , and etc. With the constants , and available for each type's machine epsilon. declarations of single precision often are not honored The value of is provided by the intrinsic function. ALGOL 68G's runtime option can set precision for s to the required "number" significant digits. The standard constants and can be used to determine actual precision. These IEEE floating-point types will be introduced in the next COBOL standard. Same size as on many implementations. Swift supports 80-bit extended precision floating point type, equivalent to in C languages. Complex numbers The value of is provided by the intrinsic function. Generic type which can be instantiated with any base floating point type. Other variable types specifically, strings of arbitrary length and automatically managed. This language represents a boolean as an integer where false is represented as a value of zero and true by a non-zero value. All values