【问题标题】:Convert Numeric to Character将数字转换为字符
【发布时间】:2011-07-08 18:36:35
【问题描述】:

我对 FoxPro 不是很熟悉,并且在尝试修改报告时遇到了问题。 我有一个数值,我想将其转换为文本,以便获取前四个字符,但我只能获取前两个字符。

当我在命令窗口中执行以下操作时: ?左(STR(20110547),4)

显示以下值: 20

我预计它会在 2011 年回归。我做错了什么还是我没有考虑到什么?

谢谢, C.R.

【问题讨论】:

    标签: foxpro visual-foxpro


    【解决方案1】:

    有几种方法可以做到这一点:

    左(ALLTRIM(STR(20110547)),4)

    您必须 LTRIM 或 ALLTRIM STR 函数,因为它会添加前导空格。来自文档:

    STR( ) 如果指定的长度大于小数点左侧的位数,则用前导空格填充它返回的字符串。如果您指定的长度小于小数点左侧的位数,则 STR( ) 返回一个星号字符串,表示数字溢出。

    您也可以使用 TRANSFORM 函数:

    左(变换(20110547),4)

    【讨论】:

    • 我没有想到我应该尝试使用 trim 语句。感谢您对 STR 和填充的解释。
    • 一般来说,除非您正在寻找精确的格式,否则使用 TRANSFORM() 比使用 STR() 更容易。
    【解决方案2】:

    FoxPro 也有 LEFTC()。它是“与 LEFT() 相同,但用于带有双字节字符的字符串”。也许 STR() 正在返回双字节字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2014-02-25
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多