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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2013, 08:04   #1
Symple me
Пользователь
 
Аватар для Symple me
 
Регистрация: 09.10.2012
Сообщений: 47
Вопрос Число знаков после запятой при считывании из Excel

Скажите, пожалуйста, как задать число знаков после запятой при выводе в StringGrid из ячейки Excel. Формат ячейки - число с двумя знаками.
Код:
StringGrid1->Cells[0][0] = Application.OlePropertyGet("ActiveSheet").OlePropertyGet ("Cells", 1, "A").OlePropertyGet("Value");
There are 10 types of people: those who understand binary and those who don't.
Symple me вне форума Ответить с цитированием
Старый 11.06.2013, 16:27   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Представление числа не зависит от того, каков формат ячейки. В любом случае, ты оперируешь с double. Используй FormatFloat для преобразования числа в строку..
FataLL вне форума Ответить с цитированием
Старый 13.06.2013, 07:09   #3
Symple me
Пользователь
 
Аватар для Symple me
 
Регистрация: 09.10.2012
Сообщений: 47
По умолчанию

А как в моем случае сделать?
Код:
StringGrid1->Cells[0][0] = FormatFloat("0.00", Application.OlePropertyGet("ActiveSheet").OlePropertyGet ("Cells", 1, "A").OlePropertyGet("Value"));
2 ошибки. Первая не очень понятная. А вторая, то что второй параметр типа variant, а не longdouble. Хотя как я понимаю variant это любой тип.
There are 10 types of people: those who understand binary and those who don't.
Symple me вне форума Ответить с цитированием
Старый 13.06.2013, 07:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как в моем случае сделать?
Код:
double d=Application.OlePropertyGet("ActiveSheet").OlePropertyGet ("Cells", 1, "A").OlePropertyGet("Value");
StringGrid1->Cells[0][0] = FormatFloat("0.00", d);
Цитата:
Первая не очень понятная.
Вторая большая и еще какая-то красненькая?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 11:48   #5
Symple me
Пользователь
 
Аватар для Symple me
 
Регистрация: 09.10.2012
Сообщений: 47
По умолчанию

Работает, спасибо, что-то не догадалась ввести переменную)

Вот текст тех ошибок.

1. Ambiguity between '_fastcall Variant:: operator float() const' and '_fastcall Variant:: operator double() const'
Типа float вместо double

2. Type mismatch in parameter 'Value' (wanted 'longdouble', got 'Variant')
There are 10 types of people: those who understand binary and those who don't.
Symple me вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество знаков после запятой ольгаг C++ Builder 5 19.03.2012 17:23
Количество знаков после запятой Matrix6993 Общие вопросы Delphi 5 01.02.2012 01:42
Как округлить вещественное число до 2 знаков после запятой roxy7 Microsoft Office Excel 2 06.12.2011 22:15
как отрегулировать кол-во знаков после запятой, при выведении числа(delphi) photozaz Общие вопросы Delphi 11 10.02.2011 21:20
Число знаков после запятой в DBGrid nikta БД в Delphi 10 23.05.2010 14:58