点击或拖拽改变大小

Functions._Str 方法

X#
将数值表达式转换为字符串。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION _Str(
	nValue,
	uLen,
	uDec
) AS STRING CLIPPER
查看代码

参数

nValue (Optional)
类型:__Usual
uLen (Optional)
类型:__Usual
uDec (Optional)
类型:__Usual

返回值

类型:String
The returned string with always have a DOT as decimal separator.
备注
Str() 通常用于将数字连接到字符串。因此,它对于根据数字创建项的代码(例如,部件编号)以及创建结合数值和字符数据的订单键非常有用。 Str() 类似于 Transform(),它使用掩码而不是长度和小数规格来格式化数字为字符串。 Str() 的逆函数是 Val(),它将格式为字符串的数字转换为数值。
示例
这些示例演示了 Str() 返回值范围,具体取决于指定的参数:
X#
 1nNumber := 123.45
 2? Str(nNumber)                            //      123.45
 3? Str(nNumber, 4)                        // 123.
 4? Str(nNumber, 2)                        // **
 5? Str(nNumber * 10, 7, 2)                    // 1234.50
 6? Str(nNumber * 10, 12, 4)                //    1234.5000
 7? Str(nNumber, 10, 1)                    //      123.5
 8? Str(123.45, -1)                    // 123.45
 9? Str(123.45, -1, 2)                    // 123.45
10? Str(0.45000, 12, -1)                    //      0.45000
通常两个数字显示相同的结果,但它们内部存储的值不同。因此,等式测试将失败(返回 FALSE),除非您对每一侧进行四舍五入。以下是一个示例:
X#
 1? nNum
 2// 显示与下面的 MyFunction() 相同
 3? MyFunction()
 4// 显示与上面的 nNum 相同
 5// 但内部不相等
 6? nNum = MyFunction()                    // FALSE
 7// 在四舍五入后它们相等
 8? Round(nNum, 0) == Round(MyFunction(), 0)    // TRUE
 9// Val(Str()) 也是四舍五入
10? Val(Str(nNum)) = Val(Str(MyFunction()))        // TRUE
将 SetFloatDelta() 设置为比之前更高的值也具有相同效果:
X#
1SetFloatDelta(0.1)
2? nNum == MyFunction()                    // TRUE
当 Decimals 参数 > 0 且 Decimals 参数 > Length-2 时,此函数返回一串星号。 如果数字不适合分配的空间,也会返回一串星号。 示例:
X#
1? Str(9,6,6)    => "******"
2? Str(9,6,5)    => "******"
3? Str(9,6,4)    => "9.0000"
4? Str(9,6,3)    => " 9.000"
5? Str(10,6,6)    => "******"
6? Str(10,6,5)    => "******"
7? Str(10,6,4)    => "******"
8? Str(10,6,3)    => "10.000"
此示例使用 Str() 创建具有复合键的订单,键由订单号和客户名称组成:
X#
1USE customer NEW
2INDEX ON Str(NumOrders, 9) + Custname TO custord
参见