Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 585
от 07.09.2006, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 376, Экспертов: 64
В номере:Вопросов: 3, Ответов: 8


Вопрос № 54027: Здравствуйте, уважаемые эксперты. Есть ли в Delphi константа со значением числа e (основания натурального логарифма)? Если есть, то как она называется и в каком модуле описывается? Спасибо....
Вопрос № 54079: Здавствуйте! Как можно прочитать html код в webbrowser?...
Вопрос № 54086: Здравствуйте, уважаемые эксперты. В моей программе переменной типа string присваивается занчение floattostr(cos(pi*3/2)), но вместо ожидаемого 0 выводится 1.8973...63E-19. Как сделать так, чтобы выводился 0? Можно ли округлить это число до ка...

Вопрос № 54.027
Здравствуйте, уважаемые эксперты.
Есть ли в Delphi константа со значением числа e (основания натурального логарифма)? Если есть, то как она называется и в каком модуле описывается?
Спасибо.
Отправлен: 01.09.2006, 20:57
Вопрос задал: Граур Василий Олегович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mexes
Здравствуйте, Граур Василий Олегович!
e=e^1=exp(1);

Функция exp, если не ошибаюсь, описана в Math
Ответ отправил: Mexes (статус: 2-ой класс)
Ответ отправлен: 01.09.2006, 21:07
Оценка за ответ: 5

Отвечает: Physicist
Здравствуйте, Граур Василий Олегович!

Такой константы нет. Самый простой способ - ввести свою (const e=2.7182818284590452353602874713527), т.к. это быстрее, чем вызывать лишний раз exp(1).
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 01.09.2006, 21:30
Оценка за ответ: 5


Вопрос № 54.079
Здавствуйте! Как можно прочитать html код в webbrowser?
Отправлен: 02.09.2006, 13:43
Вопрос задал: Томша Павел (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Munster
Здравствуйте, Томша Павел!
Если в IE, то Вид->Просмотр HTML-кода
Ответ отправил: Munster (статус: 3-ий класс)
Ответ отправлен: 02.09.2006, 14:47
Оценка за ответ: 3
Комментарий оценки:
Рассылка по Delphi, поэтому и вопрос по Delphi! Я имел ввиду програмно прочитать его и обработать.

Отвечает: Werewolf
Здравствуйте, Томша Павел!
Вначале WebBrowser.Document представить как интерфейс IPersistStreamInit
потом сохранить методом Save данного интерфейса в объект реализующий интерфейс IStream - в delphi есть TStreamAdapter
при чем его можно создать с ссылко на TStringStream

В архиве delpiworld есть статья на эту тему
http://delphiworld.narod.ru/base/wb_get_html_code.html

Удачи. =)
Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 04.09.2006, 15:14


Вопрос № 54.086
Здравствуйте, уважаемые эксперты.
В моей программе переменной типа string присваивается занчение
floattostr(cos(pi*3/2)), но вместо ожидаемого 0 выводится 1.8973...63E-19. Как сделать так, чтобы выводился 0? Можно ли округлить это число до какого-то знака после запятой(например до 10)?
Спасибо.
Отправлен: 02.09.2006, 15:30
Вопрос задал: Граур Василий Олегович (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mexes
Здравствуйте, Граур Василий Олегович!
Есть несколько вариантов. Если x=cos(pi*3/2) (или любая другая вещественная величина), то:
1) округлить с помощью RoundTo: RoundTo(x,-10) - округление до 10 знака после десятичной точки;
2) не трогая величины, отформатировать вывод строго до 10 знаков после точки (но тогда выведутся и незначащие нули, вместо "0" будет "0.0000000000"):
а) Str(x,s:1:10); // s:string
b) Format('%.10f',[x]);
Ответ отправил: Mexes (статус: 2-ой класс)
Ответ отправлен: 02.09.2006, 15:50
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Граур Василий Олегович!
Все правильно, так и должно быть. Чтобы отсечь незначащие разряды воспользуйтесь функцией FloatToStrF(), там в качестве параметров задается общее кол-во знаков и кол-во знаков после запятой.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 02.09.2006, 16:16
Оценка за ответ: 5

Отвечает: CoolBick
Здравствуйте, Граур Василий Олегович!

function RoundEx(chislo: double; Precision: Integer): string;
var
ChisloInStr: string;
ChisloInCurr: currency;
begin
ChisloInCurr := chislo;
Str(ChisloInCurr: 20: Precision, ChisloInStr);
ChisloInStr[Pos('.', ChisloInStr)] := ',';
RoundEx := Trim(ChisloInStr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := RoundEx(StrToFloat(Edit1.Text), 10);
end;
Ответ отправил: CoolBick (статус: 1-ый класс)
Ответ отправлен: 02.09.2006, 17:16

Отвечает: Сидоров Андрей
Здравствуйте, Граур Василий Олегович!

Использую FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer)

Value - твое число
Format - Формат

Precision - точность
Digits - кол-во знаков
в твоем случае floattostrF(cos(pi*3/2,ffGeneral,2,2)

Ответ отправил: Сидоров Андрей (статус: 1-ый класс)
Ответ отправлен: 04.09.2006, 10:28


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное