【发布时间】:2011-07-08 18:36:35
【问题描述】:
我对 FoxPro 不是很熟悉,并且在尝试修改报告时遇到了问题。 我有一个数值,我想将其转换为文本,以便获取前四个字符,但我只能获取前两个字符。
当我在命令窗口中执行以下操作时: ?左(STR(20110547),4)
显示以下值: 20
我预计它会在 2011 年回归。我做错了什么还是我没有考虑到什么?
谢谢, C.R.
【问题讨论】:
标签: foxpro visual-foxpro
我对 FoxPro 不是很熟悉,并且在尝试修改报告时遇到了问题。 我有一个数值,我想将其转换为文本,以便获取前四个字符,但我只能获取前两个字符。
当我在命令窗口中执行以下操作时: ?左(STR(20110547),4)
显示以下值: 20
我预计它会在 2011 年回归。我做错了什么还是我没有考虑到什么?
谢谢, C.R.
【问题讨论】:
标签: foxpro visual-foxpro
有几种方法可以做到这一点:
左(ALLTRIM(STR(20110547)),4)
您必须 LTRIM 或 ALLTRIM STR 函数,因为它会添加前导空格。来自文档:
STR( ) 如果指定的长度大于小数点左侧的位数,则用前导空格填充它返回的字符串。如果您指定的长度小于小数点左侧的位数,则 STR( ) 返回一个星号字符串,表示数字溢出。
您也可以使用 TRANSFORM 函数:
左(变换(20110547),4)
【讨论】:
FoxPro 也有 LEFTC()。它是“与 LEFT() 相同,但用于带有双字节字符的字符串”。也许 STR() 正在返回双字节字符。
【讨论】: