Функция преобразования строки в число?

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Функция преобразования строки в число?

Сообщение sonata » 12.03.2003 (Ср) 14:45

Функция преобразования строки в число?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.03.2003 (Ср) 14:51

Хм.. Я озадачен и поставлен в тупик.



Val Function



Returns the numbers contained in a string as a numeric value of appropriate type.



Syntax



Val(string)



The required string argument is any valid string expression.



Remarks



The Val function stops reading the string at the first character it can't recognize as part of a number. Symbols and characters that are often considered parts of numeric values, such as dollar signs and commas, are not recognized. However, the function recognizes the radix prefixes &O (for octal) and &H (for hexadecimal). Blanks, tabs, and linefeed characters are stripped from the argument.



The following returns the value 1615198:



Val(" 1615 198th Street N.E.")



In the code below, Val returns the decimal value -1 for the hexadecimal value shown:



Val("&HFFFF")



Note The Val function recognizes only the period (.) as a valid decimal separator. When different decimal separators are used, as in international applications, use CDbl instead to convert a string to a number.



Такая пойдет? :wink:

jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Сообщение jetcom » 12.03.2003 (Ср) 15:50

Может, всё гораздо проще? ... Может, имеется ввиду:
CInt(MyString) - для преобразования строкового представления числа в integer.
CSng(MyString)- для преобразования строкового представления числа в Single.
И т. д....
??? Уточните Ваши пожелания! :?: :?: :?:
Всё сбудется!!!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.03.2003 (Ср) 17:36

Какая разница? Кроме того, при попытке CInt("11aaaa23") вылетит если мне не изменяет память ошибка, а Val вернет 11.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 13.03.2003 (Чт) 22:13

ну а если перед этим использовать isnumeric() или vartype() тады может прокатит

jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Сообщение jetcom » 14.03.2003 (Пт) 0:05

Тады не проще, - сложней выйдет! :)
Всё сбудется!!!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.03.2003 (Пт) 11:07

Не надо делать из топика камасутру типа "сто способов получить наибольшее удовольствие от преобразования строки в число" :D

Есть val и больше ничего не надо об этом знать. :)

jetcom
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 12.01.2003 (Вс) 23:15
Откуда: Russia, Novorossiysk

Сообщение jetcom » 14.03.2003 (Пт) 12:20

2RayShade: Для чего-то же существуют остальные функции! Или ты считаешь их атавизмами?
Раз человек не конкретизировал задачу, вот и насували всего, что могли... :shock: 8) :lol: :D
Но он(она) здесь чегой-то не появляется, может, не так уж и нужно было...
Всё сбудется!!!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.03.2003 (Пт) 12:51

Остальные функции, как это явствует из их описания, предназначены для преобразования типов. :) Это несколько другая вещь нежели вытаскивание числа из строки.



А sonata наверное смтилась таким вниманием к ее вопросу :P

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 21.05.2003 (Ср) 18:50

Вероятонно, имелась ввиду функция перевода строки "пять тысыч девятьсот девяносто один" и подобных в число 5991. Я прав?
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

    TopList