Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Word, таблица


Автор: HeJIenOcTb 22.5.2007, 09:06
Всем здравстуйте!

Столкнулся с такой проблемой, что-то не пойму в чём причина.
Есть таблица с данными. (числа с точкой: 7,98; 3,54; 2,4 и далее в таком духе)
Нужно посчитать сумму чисел в столбце.
Использую такой код:

Код

dim s as single
For b = 1 To Adodc1.Recordset.RecordCount
s = CSng(s) + CSng(Val(TableWord.Cell(b, 9).Range.Text))
Next b



Проблема такая: берётся только целая часть числа, т.е. от 7,98 остаётся только 7
Почему не воспринимается число со всеми знаками просле запятой?

Помогите пожалуйста, очень нужно.
Заранее спасибо.

Автор: Akina 22.5.2007, 11:02
Цитата(HeJIenOcTb @  22.5.2007,  10:06 Найти цитируемый пост)
Почему не воспринимается число со всеми знаками просле запятой?

Потому что CSng не использует сведений о региональных настройках и считает разделителем точку. Либо используйте Replace (text,",","."), либо другую функцию преобразования типов.
Ну и справочку полезно почитать...

Автор: HeJIenOcTb 22.5.2007, 23:48
Цитата(Akina @ 22.5.2007,  11:02)

Потому что CSng не использует сведений о региональных настройках и считает разделителем точку. Либо используйте Replace (text,",","."), либо другую функцию преобразования типов.
Ну и справочку полезно почитать...

Точно, я забыл про точку.
Всё сделал через Replace, всё работает.
Akina, большое спасибо.

Справочку смотрел при создании темы, может пропустил что-нибудь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)