| **Navigation:**  [[introduction.htm|Language Reference]] > 11 - Assignments > Data Type Conversion Rules >====== Simple Assignment Data Type Conversion ====== | [[type conversion and intermediate results.htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[execution control.htm|{{btn_next_n.gif|Next page}}]] | | || The rules of simple assignment data type conversion from source into destination are as follows: **BYTE =** **(SHORT, USHORT, LONG, or ULONG)** The destination receives the low-order 8 bits of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 8 bits of the LONG. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no formatting characters. The source is converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 8 bits of the LONG. **SHORT =** **BYTE** The destination receives the value of the source. **(USHORT, LONG, or ULONG)** The destination receives the low-order 16 bits of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 16 bits of the LONG. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no formatting characters. The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 16 bits of the LONG. **USHORT =** **BYTE** The destination receives the value of the source. **(SHORT, LONG, or ULONG)** The destination receives the low-order 16 bits of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 16 bits of the LONG. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no embedded formatting characters. The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the low-order 16 bits of the LONG. **LONG =** **(BYTE, SHORT, USHORT, or ULONG)** The destination receives the value and the sign of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the value of the source, including the sign, up to 2 ³¹. If the number is greater than 2³¹, the destination receives the result of modulo 2³¹. Any decimal portion is truncated. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no embedded formatting characters. The source is first converted to a REAL, which is then converted to the LONG. **DATE =** **(BYTE, SHORT, USHORT, or ULONG)** The destination receives the Btrieve format for the Clarion Standard Date for the value of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG as a Clarion Standard Date, which truncates any decimal portion, then the destination receives the Btrieve format for the Clarion Standard Date. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no embedded formatting characters. The source is first converted to a LONG as a Clarion Standard Date, which truncates any decimal portion, then the destination receives the Btrieve format for the Clarion Standard Date. **TIME =** **(BYTE, SHORT, USHORT, or ULONG)** The destination receives the Btrieve format for the Clarion Standard Time for the value of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG as a Clarion Standard Time, which truncates any decimal portion, then the destination receives the Btrieve format for the Clarion Standard Time. **(STRING, CSTRING, PSTRING)** The source must be a numeric value with no embedded formatting characters. The source is first converted to a LONG as a Clarion Standard Time, which truncates any decimal portion, then the destination receives the Btrieve format for the Clarion Standard Time. **ULONG =** **(BYTE, SHORT, or USHORT)** The source is first converted to a LONG, then the destination receives the entire 32 bits of the LONG. **LONG** The destination receives the entire 32 bits of the source. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the entire 32 bits of the LONG. **(STRING, CSTRING, or PSTRING)** The source must be a numeric value with no embedded formatting characters. The source is first converted to a LONG, which truncates any decimal portion, then the destination receives the entire 32 bits of the LONG. **REAL =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the full integer portion and the sign of the source. **(DECIMAL, PDECIMAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the sign, integer portion, and the decimal portion of the source. **(STRING, CSTRING, PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **SREAL =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and value of the source. **(DECIMAL, PDECIMAL, or REAL)** The destination receives the sign, integer, and fractional portion of the source. **(STRING, CSTRING, or PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **BFLOAT8 =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and value of the source. **(DECIMAL, PDECIMAL, or REAL)** The destination receives the sign, integer, and fractional portion of the source. **(STRING, CSTRING,** **or PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **BFLOAT4 =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and value of the source. **(DECIMAL, PDECIMAL, or REAL)** The destination receives the sign, integer, and fractional portion of the source. **(STRING, CSTRING, or PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **DECIMAL =** **(BYTE, SHORT, USHORT, LONG, ULONG, or PDECIMAL)** The destination receives the sign and the value of the source, wrapping or rounding as appropriate. **(REAL, or SREAL)** The destination receives the sign, integer, and the high order part of the fraction from the source. The high order fractional portion is rounded in the destination. **(STRING, CSTRING, PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **PDECIMAL =** **(BYTE, SHORT, USHORT, LONG, ULONG, or DECIMAL)** The destination receives the sign and the value of the source, wrapping or rounding as appropriate. **(REAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the sign, integer, and the high order part of the fraction from the source. The high order fractional portion is rounded in the destination. **(STRING, CSTRING, or PSTRING)** The source must be a numeric string value with no embedded formatting characters. The destination receives the sign, integer, and decimal portion of the number. Trailing spaces are ignored. **STRING =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and the unformatted number. The value is left justified in the destination. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the sign, integer, and fractional portion of the source (rounded into the string's picture format). The value is left justified in the destination. **CSTRING =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and the unformatted number. The value is left justified in the destination. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the sign, integer, and fractional portion of the source (rounded into the string's picture format). The value is left justified in the destination. **PSTRING =** **(BYTE, SHORT, USHORT, LONG, or ULONG)** The destination receives the sign and the unformatted number. The value is left justified in the destination. **(DECIMAL, PDECIMAL, REAL, SREAL, BFLOAT8, or BFLOAT4)** The destination receives the sign, integer, and fractional portion of the source (rounded into the string's picture format). The value is left justified in the destination.