Skip to main content

转换函数

转换函数将一种数据类型或格式转换为另一种数据类型或格式。使用转换函数可将数字转换为字符串,或将字符串转换为数字。转换函数可用于字符串和数值数据类型。

BinToInt

BinToInt(s) :将二进制字符串(s)转换为整数。它的精度限制为 64 位,长度最多可达 64 位。

示例

  • BinToInt("101010101")  返回 341。如果字符串长度正好为 32 或 64 个字符,则会被视为有符号数字:

  • BinToInt("11111111111111111111111111111011")  返回 -5。前导符号‘+’和‘-’的优先级高于将 32 个和 64 个字符视为有符号数字的规则:

  • BinToInt("-111")  返回 -7。

  • BinToInt("+111")  返回 7。

CharFromInt

CharFromInt(x) :返回与输入数字 x 相匹配的 Unicode® 字符。

示例

  • CharFromInt(66)  返回 B(U+0042“拉丁大写字母 B”)。

  • CharFromInt(169)  返回 ©(U+00A9“版权符号”)。

  • CharFromInt(1071)  返回 Я(U+042F“西里尔大写字母 YA”)。

  • CharFromInt(127944)  返回 🏈(U+1F3C8“美式足球”)。

  • CharFromInt(0)  返回 [null] (U+000 'Null'),因为任何不能用于表示字符的整数都可能给出 null 结果。

  • CharFromInt(55300)  返回 [null],因为任何当前不代表字符的整数都将不能按正常字体呈现。

CharToInt

CharToInt(s) :返回与输入 Unicode® 字符 s 相匹配的数字。

示例

  • CharToInt("B")  返回 66(U+0042“拉丁大写字母 B”)。

  • CharToInt("©")  返回 169(U+00A9“版权符号”)。

  • CharToInt("Я")  返回 1071(U+042F“西里尔大写字母 YA”)。

  • CharToInt()  返回 127944(U+1F3C8“美式足球”)。

ConvertFromCodePage

ConvertFromCodePage(s, codePage) :将文本从代码页转换为 Unicode 编码。如需详细了解代码页,请参阅 代码页 文档。

ConvertToCodePage

ConvertToCodePage(s, codePage) :将文本从 Unicode® 编码转换为特定代码页。要详细了解代码页,请访问 代码页 文档。

HexToNumber

HexToNumber(x):将十六进制字符串转换为数字(限制为 64 位)。如果有 64 位、16 个十六进制字符,并且设置了前导位,则结果为负数。

示例

  • HexToNumber("7FFFFFFFFFFFFFFA")  返回 9223372036854775802。

  • HexToNumber("FFFFFFFFFFFFFFFA")  返回 -6。

  • HexToNumber("FFFFFFFFFFFFFFFB")  返回 -5。

IntToBin

IntToBin(x) :将 x 转换为二进制字符串。

IntToHex

IntToHex(x) :将 x 转换为十六进制字符串。

ToDegrees

ToDegrees(x) :通过 (x)rad × 180/π 计算,将数值弧度值 (x) 转换为度数。请注意,x 必须是一个数值,不能包含任何弧度符号 (rad)。

示例

  • TODEGREES(0)  返回 0。

  • TODEGREES(1)  返回 57.29578 (1 * 180/π)。

  • TODEGREES(Null)  返回 Null。

  • TODEGREES(2.5)  返回 143.239449 (2.5 * 180/π)。

ToNumber

ToNumber(x, [bIgnoreErrors], [keepNulls], [decimalSeparator]) :将字符串 (x) 转换为数字。ToNumber 接受可解释为科学记数法双精度的字符串。ToNumber 接受可解释为双精度科学计数法的字符串。默认情况下,句点用作小数分隔符。如果有的话,在小数分隔符之前(而非之后),所有可能的千位分隔符都会被删除,如:空格、逗号、句号和撇号。写出来是这样的:"123 456'789.012345"。

如果输入字符串看起来像整数并且在范围内,ToNumber 可以返回精度为 64 位的整数值。

非数字值

ToNumber 从字符串首位对其求值,并在遇到非数字值(忽略逗号、句点、空格和撇号)时停止。

例如,字符串“June 2022”会返回 0 或 [Null](具体取决于配置),而“2022 June”会返回 2022。

可选参数

  • bIgnoreErrors

    • (默认)0 或 false 报告转换错误消息。

    • 1 或 true 忽略转换错误。

  • keepNulls

    • (默认)0 或 false 将非数字值(包括 null)转换为零。

    • 1 或 true 将非数值转换为 null。

  • decimalSeparator :传入的字符串的小数分隔符。

    • (默认)“.”将句点指定为小数分隔符。

    • "," 将逗号指定为小数分隔符。

    decimalSeparator 参数会忽略传入的字符串的任何指定千位分隔符(空格、句点、逗号或撇号)。

示例

  • ToNumber("878")  将字符串 878 作为数字返回。

  • ToNumber("4.256411411E9")  返回数字 4256411411.0。

  • ToNumber("9223372036854775807")  返回 9223372036854775807。但是, ToNumber("9.223372036854774273e18")  会返回一个双精度值,该值将失去精度并四舍五入为 9223372036854775808。

  • ToNumber("Number", "false")  返回 0,并显示转换错误:TONUMBER:Number 在转换过程中丢失了信息。

  • ToNumber("Number", 0, 0)  返回 0,并显示转换错误:TONUMBER:Number 在转换过程中丢失了信息。

  • ToNumber("Number", 1, 0)  返回 0,并且没有转换错误。

  • ToNumber("Number", 1, 1)  返回 [Null],并且没有转换错误。

  • ToNumber("123456,789", 1, 1, ",")  返回数字 123456.789。

  • ToNumber("123.456,789", 1, 1, ",")  返回数字 123456.789。这是因为,当句号出现在通过 decimalSeparator 指定的小数分隔符之前时,它会被解释为千位分隔符。

  • ToNumber("June 2022")  返回 0。该函数立即遇到一个非数字值并转换为 0。

  • ToNumber("2022 June")  返回数字 2022。当该函数遇到非数字值(June 中的 J)时,会停止。

  • ToNumber("6/1/2022")  返回数字 6。当该函数遇到非数字值 / 时,会停止。

  • ToNumber("2022 5:00:00")  返回数字 20225。当该函数遇到 5 后面的非数字值 : 时,会停止。小数分隔符前的空格将被忽略。

ToRadians

ToRadians(x) ToRadians(x):通过 (x)° × π/180 计算将数值度数值 (x) 转换为弧度值。请注意,x 必须是一个数值,不能包含度数符号 (°)。

示例

  • TORADIANS(0)  TORADIANS(0) 返回 0 (0 * π/180)。

  • TORADIANS(1)  TORADIANS(1) 返回 0.017453 (1 * π/180)。

  • TORADIANS(5)  TORADIANS(5) 返回 0.087266 (5 * π/180)。

  • TORADIANS(2.5)  TORADIANS(2.5) 返回 0.043633 (2.5 * π/180)。

ToString

ToString(x, [numDec], [addThousandsSeparator], [decimalSeparator]) :使用小数位数参数 numDec 将数值参数 (x) 转换为字符串。默认选项使用句点作为小数分隔符。ToString 以不同的方式处理 Int64 值,以免在转换过程中损失精度。ToString(value, 0, 1) 使用 value=18014398509481983 精确得到 18,014,398,509,481,983。

* numDec  参数的最大值为 100。  

可选参数

  • addThousandsSeparator

    • (默认) 0 会格式化数字字符串,不带千位分隔符。

    • 1 格式化字符串,带千位分隔符。默认情况下,千位分隔符为逗号,除非 decimalSeparator 指定用 “,”,在这种情况下,千位分隔符为句点。

    • "," 将逗号指定为千位分隔符。

    • "." 将句点指定为千位分隔符。

    • " " 将空格指定为千位分隔符。

    • "'"将撇号指定为千位分隔符。

  • decimalSeparator:

    • (默认)“.”将句点指定为小数分隔符。

    • "," 将逗号指定为小数分隔符。

示例

  • ToString(10, 0)  返回字符串 10。

  • ToString(10.4, 2)  返回字符串 10.40。

  • ToString(100.4, 2)  返回字符串 100.40。

  • ToString(1000.4, 2, 1)  返回字符串 1,000.40。

  • ToString(123456.789, 3, 1, ",")  返回字符串 123.456,789。

  • ToString(123456.789, 3, 0, ",")  返回字符串 123456,789。

  • ToString(1234567.89, 2, ".", ",")  返回字符串 1.234.567,89。

  • ToString(1234567.89, 2, " ", ",")  返回字符串 1 234 567,89。

  • ToString(1234567.89, 2, "'", ",")  返回字符串 1'234'567,89。