
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.04.2008, 12:16
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
доброго всем времени суток. подскажите, пожалуйста, с таким вопросом. есть столбец с текстовым типом данных. но в нем хранятся дробные числа. количество знаков после запятой равно трем. и ионгда получаются числа вроде таких 25.300, 2.020. можно ли как-то отследить эти незначимые нули и убрать? всм заранее спасиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 12:33
|
|||
|---|---|---|---|
убрать незначимые нули |
|||
|
#18+
Лучше это делать при конвертации: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 12:33
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
Как узнать количество значащих знаков после запятой http://forum.foxclub.ru/read.php?29,312939,313006#msg-313006 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 12:57
|
|||
|---|---|---|---|
убрать незначимые нули |
|||
|
#18+
Если VFP9, то так (у меня переменная 9 цифр, 3 после запятой) ALLTRIM(ALLTRIM(STR(MyVar,9,3),'0'),'.',' ') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 17:13
|
|||
|---|---|---|---|
убрать незначимые нули |
|||
|
#18+
В VFP9 у функций AllTrim(), LTrim(), RTrim() появились дополнительные параметры, показывающие, какие именно ведущие и концевые символы надо отбросить. В частности, можно отбросить и символ 0, и символ точки, если он окажется посленим Код: plaintext 1. 2. Если используется поле Character и могут быть еще и концевые пробелы, то в список символов надо добавить еще и пробел. Тогда получим такую команду Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 17:38
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
"ВладимирМ" <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:5562785@sql.ru... > ?RTrim(" 12345.600",1,"0",".") > ?RTrim(" 12345.000",1,"0",".") ?RTrim("1234500.000",1,"0"," ",".") && Даст неверныей результат ?RTRIM(RTrim("1234500.100 ",1,"0"," "),1,".") Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 17:41
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
> Автор: Погодин > Если VFP9, то так (у меня переменная 9 цифр, 3 после запятой) > > ALLTRIM(ALLTRIM(STR(MyVar,9,3),'0'),'.',' ') В данном случае поле текстовое и потому могут быть последними пробелы. Думаю так будет корректнее: ?ALLTRIM(ALLTRIM(STR(1,9,3),'0',' '),'.') (Пробелы внутри первого alltrim) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 17:58
|
|||
|---|---|---|---|
убрать незначимые нули |
|||
|
#18+
Galyamov Rinat?RTrim("1234500.000",1,"0"," ",".") && Даст неверныей результат Вариант последовательной замены не даст ошибки: Код: plaintext Но стоит случайно REPLACE дважды сделать, и тут все съедет. Поэтому надо обрезание делать только в момент преобразования из числа в строку, тогда точка однозначно присутствует. Чтобы причесать то что есть - надежней преобразовать строку в число, потом обратно с обрезанием: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 18:27
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
> ALLTRIM(ALLTRIM(STR(val(chrtran("1234500.000", ',.', set('point') + > set('point'))), 12, 3),'0',' '), set('point')) Ну и еще одна поправка: lcNum='0.001' lcNum='0.001' ?ALLTRIM(ALLTRIM(STR(val(chrtran(lcNum, ',.', set('point') + set('point'))), 12, 3),'0',' '), set('point')) && Опять неверно!!! Вроде вот так будет совсем правильно: lcNum=' 0.010 ' ?RTRIM(RTRIM(ALLTRIM(STR(val(chrtran(lcNum, ',.', set('point') + set('point'))), 12, 3),' '),1,'0'), set('point')) :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2008, 21:11
|
|||
|---|---|---|---|
убрать незначимые нули |
|||
|
#18+
Galyamov Rinat Ну и еще одна поправка: ... Вроде вот так будет совсем правильно: lcNum=' 0.010 ' Код: plaintext Поправка принимается, но так чуть покороче будет: Код: plaintext :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2008, 10:47
|
|||
|---|---|---|---|
|
|||
убрать незначимые нули |
|||
|
#18+
С любым set point, с любым кол-ом знаков после запятой, в т.ч. целые числа, и покороче :) Код: plaintext Тест Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1587868]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 294ms |

| 0 / 0 |
