



注意

如果类型转换运算符的操作数值超出了目标数据类型的值范围,那么结果输出将取决于处理器类型,因此是未定义的。例如,当操作数负值从LREAL
转换为目标数据类型UINT
时,就会出现这种情况。
从较大的数据类型转换为较小的数据类型时,可能会丢失信息。




注意

如果浮点数在目标数据类型的取值范围内,那么转换在所有系统上的操作方式都是一样的。




注意

如果要转换的浮点数超过了范围限制,那么数字的第一个字节将被忽略。
运算符将浮点数转换为指定的数据类型,并返回类型转换后的值。如果适用,转换将四舍五入。
致电
语法
<variable name> := <floating-point conversion operator> ( <floating-point operand> ); <floating-point operand> = <variable name> | <literal> <floating-point type> = REAL | LREAL
操作符
REAL_TO___UXINT REAL_TO___XINT REAL_TO___XWORD REAL_TO_BIT REAL_TO_BOOL REAL_TO_BYTE REAL_TO_DATE REAL_TO_DINT REAL_TO_DT REAL_TO_DWORD REAL_TO_INT REAL_TO_LINT REAL_TO_LREAL REAL_TO_LTIME REAL_TO_LWORD REAL_TO_SINT REAL_TO_STRING REAL_TO_TIME REAL_TO_TOD REAL_TO_UDINT REAL_TO_UINT REAL_TO_ULINT REAL_TO_USINT REAL_TO_WORD REAL_TO_WSTRING LREAL_TO___UXINT LREAL_TO___XINT LREAL_TO___XWORD LREAL_TO_BIT LREAL_TO_BOOL LREAL_TO_BYTE LREAL_TO_DATE LREAL_TO_DINT LREAL_TO_DT LREAL_TO_DWORD LREAL_TO_INT LREAL_TO_LINT LREAL_TO_LTIME LREAL_TO_LWORD LREAL_TO_REAL LREAL_TO_SINT LREAL_TO_STRING LREAL_TO_TIME LREAL_TO_TOD LREAL_TO_UDINT LREAL_TO_UINT LREAL_TO_ULINT LREAL_TO_USINT LREAL_TO_WORD LREAL_TO_WSTRING
四舍五入
转换为整数时,操作数将向上或向下舍入为整数值。小数点后 1 到 4 的数字向下舍入。5 到 9 的数字四舍五入。然后将舍入后的数字转换为指定的整数类型。如果舍入值超出整数值范围,则会返回一个未定义的、目标系统相关的值。这时也可能出现异常错误。




注意

边界情况下的四舍五入逻辑取决于目标系统或目标系统的 FPU(浮点运算单元)。例如,一个-1.5
的值在不同控制器上的转换可能不同。
要编写与目标系统无关的代码,就必须在整个应用程序中捕捉数值范围溢出。
转换为字符串




注意

转换为STRING
或 WSTRING
在将类型转换为STRING
或WSTRING
时,键入的值将作为字符串左对齐,如果太长则截断。因此,要为类型转换运算符<>_TO_STRING
和<>_TO_WSTRING
声明足够长的返回变量,以便字符串在不进行任何操作的情况下有足够的空间。
将浮点数转换为字符串时,尾数的小数位数限制为 6。如果数字小于 1,则尾数为1 <= m < 10
。如果逗号后尾数的位数较多,则四舍五入到第 6 位,然后进行转换。
字符串变量也可能声明得太短,无法满足返回值的要求。在这种情况下,返回字符串会被向右截断。

示例
ST 实施语言
