Преобразовать число в символ - PullRequest
2 голосов
/ 08 июля 2011

Я не очень знаком с FoxPro и сталкиваюсь с проблемами при попытке изменить отчет. У меня есть числовое значение, которое я хочу преобразовать в текст, чтобы я мог получить первые четыре символа, но я могу получить только первые два символа.

Когда я выполняю следующее в командной строке: ? LEFT (STR (20110547), 4)

Отображается следующее значение: 20

Я ожидал, что он вернется в 2011 году. Я делаю что-то не так или есть что-то, что я не учитываю?

Спасибо, C.R.

Ответы [ 2 ]

3 голосов
/ 08 июля 2011

Есть несколько способов сделать это:

ВЛЕВО (ALLTRIM (STR (20110547)), 4)

Вы должны использовать функцию LTRIM или ALLTRIM STR, так как она добавляет начальные пробелы,Из документации:

STR () дополняет строку символов, которую она возвращает, пробелами в начале, если вы указываете длину, превышающую количество цифр слева от десятичной запятой.STR () возвращает строку звездочек, указывающую на переполнение чисел, если вы укажете длину меньше, чем число цифр слева от десятичной точки.

Вы также можете использовать функцию TRANSFORM:

LEFT (преобразование (20110547), 4)

0 голосов
/ 08 июля 2011

FoxPro также имеет LEFTC ().Это то же самое, что и LEFT (), но используется для строк с двухбайтовыми символами.Возможно, STR () возвращает двухбайтовые символы.

...