Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2009, 19:31   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию Как преобразовать поле из таблицы в вещественное число?

Уважаемые, подскажите как можно преобразовать строку в вещественное число, например в целое есть функция Val а вот в вещественное в справке не нашел Мне нужно работать в VBA.
И второй вопросик, вот есть функция Round которая может округлять для заданного числа знаков после запятой, но чем можно воспользоваться, чтобы округлять для заданного числа знаков и выводить именно столько знаков после запятой, например число 3 округлится до 3. Или же как это число преобразовать в текст в ворде чтобы было 3,00?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 16.07.2009, 19:43   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Число цифр после запятой

Код:
MsgBox FormatNumber(3, 2)
выведет ваше число (3) с нужным количеством цифр (2) в его дробной части.

Что касается извлечения числа из строки, то вот:

Код:
MsgBox Val("3.2 бла-бла-бла") 'даст 3,2 (при том, что разделитель в Региональных стандартах — запятая)'
MsgBox Val("3.0") 'даст 3'
И уточните, надо ли совмещать формат и округление: по-моему, первое включает в себя второе!

Последний раз редактировалось Sasha_Smirnov; 16.07.2009 в 20:16.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 16.07.2009, 19:46   #3
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Спасибо, один вопрос решен, а туда можно передать также дробное число и можно написать так:
Код:
a=3
...
tables(1).cells[1,1].range.text = FormatNumber(Round(a,2),2)
?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 16.07.2009, 20:38   #4
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Код:
MsgBox FormatNumber(3, 2)
выведет ваше число (3) с нужным количеством цифр (2) в его дробной части.

Что касается извлечения числа из строки, то вот:

Код:
MsgBox Val("3.2 бла-бла-бла") 'даст 3,2 (при том, что разделитель в Региональных стандартах — запятая)'
MsgBox Val("3.0") 'даст 3'
И уточните, надо ли совмещать формат и округление: по-моему, первое включает в себя второе!
Не знаю, но у меня Val берет данные из ячейки где значения разделены запятой, но в результате берет их как целые. Например задано число 2,3265 MsgBox (Val(ThisDocument.Tables(1).Cell(1, 1).Range.Text)) выдает 2, но если там точка Val выдает 2,3265 но ведь сам VBA преобразовывает с точкой может надо настроить? Нет при окргулениии числа 3,000000001 будет число 3, а мне
надо 3,00
p.s У меня 2003 оффис.
Страх это слабость и потому, кто испугался уже побежден.

Последний раз редактировалось Mixasik; 16.07.2009 в 20:44.
Mixasik вне форума Ответить с цитированием
Старый 16.07.2009, 20:56   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте что-то вроде этого:
Код:
Sub test()
    a = "3,1425"
    число1 = Val(Replace(a, ",", ".")): Debug.Print число1
    Debug.Print FormatNumber(a, 2)
    
    b = "3.6547"
    число2 = Val(b): Debug.Print число2
    Debug.Print FormatNumber(Replace(b, ".", ","), 2)
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 16.07.2009, 21:06   #6
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Спасибо. Буду пробывать.
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 17.07.2009, 05:11   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
...уточните, надо ли совмещать формат и округление: по-моему, первое включает в себя второе!
Цитата:
Сообщение от Mixasik Посмотреть сообщение
Нет при окргулениии числа 3,000000001 будет число 3, а мне надо 3,00
Вот я и предлагал — не округляя, сразу форматировать. Округляется само!
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из таблицы в поле EQ CaptainNemo Microsoft Office Word 10 15.06.2009 20:29
Как преобразовать в число komar73 Microsoft Office Excel 11 15.04.2009 14:32
Как преобразовать число в текст на русском языке??? Aerodeck Microsoft Office Excel 2 09.10.2007 07:51
Преобразование даты в вещественное число nova-alex Общие вопросы Delphi 5 03.05.2007 10:51