На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Большие числа: точность расчёта
    Необходимо вычислить 97^4464/98^4464. Чтобы избежать переполнения, делаю так:
    ExpandedWrap disabled
      Dim Res As Double, iI2 as Integer
          Res = 1
          For iI2 = 1 To 4464
           Res = Res * (97 / 98)
          Next
      Debug.Print Res
       
          Res = 1
          For iI2 = 1 To 4464 / 48 Step 48
           Res = Res * (97 ^ 48 / 98 ^ 48)
          Next
      Debug.Print Res

    Результаты сильно разнятся. Где точнее рез-т?
    Сообщение отредактировано: BlackSun -
      Во втором варианте ошибка, должно быть так:
      ExpandedWrap disabled
          For i = 1 To 4464 / 48
            Res = Res * (97 ^ 48 / 98 ^ 48)
          Next

      Но лучше так:
      ExpandedWrap disabled
          Debug.Print (97 / 98) ^ 4464
        Да, вчера пересидел за компом, спс.
        Сообщение отредактировано: BlackSun -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0312 ]   [ 17 queries used ]   [ Generated: 16.04.24, 07:40 GMT ]