powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать строку в число
23 сообщений из 23, страница 1 из 1
Преобразовать строку в число
    #32819350
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица настроек.
2 столбца - параметр, значение (оба поля стринг).

Дробные числовые значения я храню как 0.00 - через точку.
Как мне преобразовать строку в число, если я не знаю какие региональные установки на компьютере пользователя?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819382
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F1: CCur, CDbl, CLng etc.
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819391
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 в лоб - преобразовать CDbl - перехватить ошибку сделать replace .-->,
2 сейчас не вспомню - на конфе Саныч приводил пример безусловного приведения типов Format-ом
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819393
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vsevolod V

попробуй
?cсur("0.01")
при русских настройках
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819398
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shuhard

а можно поподробнее про саныча.
примерно где искать?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819414
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlTis2 Shuhard

а можно поподробнее про саныча.
примерно где искать?
Саныч - знамо дело на исторической родине хануку справляет
искать в 20000 его топиках бесполезно
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819420
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlTis2 Vsevolod V

попробуй
?cсur("0.01")
при русских настройках
F1 нажимал?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819431
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsevolod V AlTis2 Vsevolod V

попробуй
?cсur("0.01")
при русских настройках
F1 нажимал?
разделитель в системе ,
автор
?Cdbl("1,1")
1,1
?Cdbl("1.1")
облом

To Vsevolod V - а у тебя как ?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819433
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо работает Str()
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819438
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) По-моему вопрос задан некорректно.
2) Как преобразовывается строка в число я тебе показал и у меня это работает.
3) Что такое "русские настроики" в твоем понимании я не знаю (видимо здесь имеется ввиду разделитель целой и дробной части ",").
4) проблему замены запятой точкой с помощию чего угодно я поднимал около года назад (видимо именно этот топик имеет ввиду Shuhard)
5) самый надежный способ заменить запятую точкой - это изменить программно региональные установки
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819443
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в пункте 4 забыл сказать, что решение не было найдено :)
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819452
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsevolod V1 Что такое "русские настроики" в твоем понимании я не знаю (видимо здесь имеется ввиду разделитель целой и дробной части ",").
2 самый надежный способ заменить запятую точкой - это изменить программно региональные установки
1 - да конечно
2 - не есть хорошо ,например при разумном шаблоне безопасности юзер не имеет прав + на рабочей станции может крутиться уйма программ,которые таковую замену не перенесут
3 - Latuk - тот всегда в adp делает условный replace
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819463
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп-стоп-стоп!
Мы же работаем со стрингом "1.01"!
То есть никакие региональные настройки не мешают подменить точку запятой в стринге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function fun(str as string) as string
dim i as integer
dim j as integer

i = instr(str,".")
j = len(str)
if i >  0  then
fun = left(str,i- 1 ) & "," & right(str,j - i)
end if
end function
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819465
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникает, кстати, попутный вопрос: а зачем хранить числовые данные в стринге, да еще и через "."?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819468
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
строку в число независимо от настроек пользователя - Val
при этом десятичный разделитель в исходной строке тоже не должен зависеть от настроек у пользователя, допускается только точка.
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819479
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть никакие региональные настройки не мешают подменить точку запятой в стринге:
Тут-то и таится опасность стрингов в SQL выражениях! Он (SQL) отлично проглатывает точки и кашляет на запятые! Собственно, весь сыр-бор только из-за этого! Повторяю, при приклейке к стрингам дробных выражений в региональных настройках, где десятичный разделитель не точка, удобно пользоваться функцией Str()
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819505
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорныйстроку в число независимо от настроек пользователя - Val
при этом десятичный разделитель в исходной строке тоже не должен зависеть от настроек у пользователя, допускается только точка.
OK
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819508
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за интерес к теме.

2 ЛП
Как всегда на высоте, за что большое спасибо!

решение:
?VAL("0.01")
0,01

Тема закрыта.
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819515
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlTisСпасибо за интерес к теме.

2 ЛП
Как всегда на высоте, за что большое спасибо!

решение:
?VAL("0.01")
0,01

Тема закрыта.

Однако стоит проверить, что стринг не null и что это действительно число, иначе VAL выдаст ошибку.
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819530
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryОднако стоит проверить, что стринг не null и что это действительно число, иначе VAL выдаст ошибку.

А переменная типа String бывает Null?
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819531
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не число - то выдаст 0
не ошибка, но все равно неприятно
так что проверка IsNumeric лишней не будет
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819532
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Всем привет. Я Саныч. Ничего кроме val, что я мог бы советовать по этому поводу, припомнить не могу.
...
Рейтинг: 0 / 0
Преобразовать строку в число
    #32819575
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычВсем привет. Я Саныч. Ничего кроме val, что я мог бы советовать по этому поводу, припомнить не могу.
звиняй дядьку - лишнего приписал!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать строку в число
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]