Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Ципихович Эндрю
1410 / 320 / 28
Регистрация: 10.04.2009
Сообщений: 4,991
1

Long из двух String

09.06.2017, 13:48. Просмотров 300. Ответов 12
Метки нет (Все метки)

здравствуйте, делаю так:
Visual Basic
1
ЦенаLong = (Trim(y(b - 2))) & "," & (Trim(y(b)))
где (Trim(y(b - 2))) = 33, а (Trim(y(b))) = 14, пытаюсь получить 33,14 - получаю облом, как нужно? спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2017, 13:48
Ответы с готовыми решениями:

Как объявить переменные, которые далеко не String, Long и т.д
Здравствуйте, перебираю старые поделки Set...

LongPtr и Long: не игнорируется модуль
*LongPtr и Long: игнорируется модуль Здравствуйте. Есть модуль. На моём...

Привести тип массива Variant к Long
Как массив Variant привести к типу, например Long? Ниже приведен показательный...

Перевод из String в long long
Мне нужна функция для перевода из String в long long.Функция atoi(const char*...

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая...

12
SoftIce
es geht mir gut
10465 / 3977 / 1016
Регистрация: 27.07.2011
Сообщений: 9,645
Завершенные тесты: 1
09.06.2017, 14:19 2
Почему Long ? Должно быть Single или Double

Visual Basic
1
Цена_Sng =val( (Trim(y(b - 2))) & "." & (Trim(y(b))))
или
Visual Basic
1
Цена_Sng = csng((Trim(y(b - 2))) & "," & (Trim(y(b))))
1
Hugo121
6286 / 2388 / 402
Регистрация: 19.10.2012
Сообщений: 7,061
09.06.2017, 14:23 3
А Вы попытайтесь получить 33.14
Только ЦенаLong задайте нужный тип

Добавлено через 1 минуту
Прекрасно работает:
Visual Basic
1
2
Dim x As Double
x = "33" & "." & "14"
1
SoftIce
09.06.2017, 14:25
  #4

Не по теме:

Option Strict на вас нет. :D

0
Alex77755
10740 / 3312 / 550
Регистрация: 13.02.2009
Сообщений: 9,757
09.06.2017, 14:30 5
Должно быть Single или Double
Отнюдь!
Ни одно из них! Корректней всего специальный тип! Currency

Добавлено через 2 минуты
Этот тип, кстати, часто работает корректней чем округлённый дабл
1
Ципихович Эндрю
1410 / 320 / 28
Регистрация: 10.04.2009
Сообщений: 4,991
09.06.2017, 16:05  [ТС] 6
не взлетело:
Visual Basic
1
2
3
Debug.Print (Trim(y(b - 3)))
                Debug.Print (Trim(y(b - 1)))
                Ущерб_одной_строкиCurrency = (Trim(y(b - 3))) & "." & (Trim(y(b - 1)))
Debug.Print (Trim(y(b - 3))) = 191
Debug.Print (Trim(y(b - 1))) = 50
0
Alex77755
10740 / 3312 / 550
Регистрация: 13.02.2009
Сообщений: 9,757
09.06.2017, 16:52 7
а с какого перепугу должно было взлететь?
что есть объявление переменных?
есть преобразование?
0
Ципихович Эндрю
1410 / 320 / 28
Регистрация: 10.04.2009
Сообщений: 4,991
09.06.2017, 17:10  [ТС] 8
Ущерб_одной_строкиCurrency - Currency, остальные стринговые
Цитата Сообщение от Alex77755 Посмотреть сообщение
есть преобразование?
это как делается?
0
Alex77755
10740 / 3312 / 550
Регистрация: 13.02.2009
Сообщений: 9,757
09.06.2017, 17:19 9
1. Option Explicit
2. объявление типов данных
3. преобразование! в гугле забанили? в украине живешь?
http://www.programm-school.ru/function_decode_type_vba.html
0
Вложения
Тип файла: doc Типы данных.doc (40.0 Кб, 2 просмотров)
SoftIce
09.06.2017, 17:33
  #10

Не по теме:

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
это как делается?
:facepalm: 8 лет на форуме прошли зря :D

0
Ципихович Эндрю
1410 / 320 / 28
Регистрация: 10.04.2009
Сообщений: 4,991
10.06.2017, 10:02  [ТС] 11
спасибо, всё равно не склеивается...
Visual Basic
1
2
3
4
5
6
7
8
9
If IsNumeric(Trim(y(b - 3))) And IsNumeric(Trim(y(b - 1))) Then
                    Рубли = CLng(Trim(y(b - 3)))
                    Копейки = CLng(Trim(y(b - 1)))
                    Debug.Print Рубли
                    Debug.Print Копейки
                    'склеиваем рубли и копейки, третье слово с конца и предпоследнее слово, разделителем является точка
                    Ущерб_одной_строкиCurrency = Рубли & "." & Копейки
                    Debug.Print Ущерб_одной_строкиCurrency
End If
Добавлено через 1 час 22 минуты
Цитата Сообщение от Hugo121 Посмотреть сообщение
Dim x As Double
x = "33" & "." & "14"
в ВБА не работает

Добавлено через 51 секунду
вау, так:
Visual Basic
1
2
Dim x As Double
x = "33" & "," & "14"
работает
0
Hugo121
6286 / 2388 / 402
Регистрация: 19.10.2012
Сообщений: 7,061
10.06.2017, 21:49 12
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в ВБА не работает
- Вам сколько лет? Молодёжь так бескомпромиссна, и всегда всё знает лучше всех...
У меня вот на работе работает, а дома отдыхает. Всё как положено
Никто кстати не в курсе, где в Вин10 настраиваются эти разделители? Или тут играет роль что выставлено в Экселе? Как-то ранее не вникал, обычно делал универсально:
Visual Basic
1
2
3
4
    Dim x As Double, sep As String
    sep = Mid(1 / 2, 2, 1)
 
    x = "33" & sep & "14"
1
pashulka
2404 / 1226 / 499
Регистрация: 01.12.2010
Сообщений: 2,478
10.06.2017, 22:01 13
Типо универсально, ибо для функции Val разделитель всегда точка .

Visual Basic
1
2
3
t1 = "33"
t2 = "14"
n = Val(t1 & "." & t2)
1
10.06.2017, 22:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2017, 22:01

Преобразование string в long (String из сокета)
Здравствуйте, пакетом приходит число, хочу это число преобразовать к типу long....

Long To String
Как в C++ Builder преобразовать переменную типа long в string?

Из String в Long
Почему когда я передаю 12-ти значное число из String в Long, оно обрезается до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru