На главную Наши проекты:
Журнал   ·   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.
  
> Как в String записать значение Double без "E"? , Visual Basic v.6.0
    Понимаю, что просто написать функцию, которая LeftStr(E) умножит на 10^RightStr(E) - но так не интересно. Есть ли встроенный механизм, позволяющий преобразовать искореженные значения мизерных и великих чисел даблов в нормальные?
      Цитата Сергей85 @
      Есть ли встроенный механизм, позволяющий преобразовать искореженные значения мизерных и великих чисел даблов в нормальные?

      ExpandedWrap disabled
        Format()
        Большие числа нормально выводятся с помощью
        ExpandedWrap disabled
          Debug.Print Format(num,"#")
        А вот с малыми всё непросто - будет выводиться тупо ноль. Когда-то очень давно была такая надобность - пришлось рисовать собственную функцию.
          Как ни странно, решением оказалась CDec().
            Цитата Сергей85 @
            Как ни странно, решением оказалась CDec().

            И какое же это решение? Числа, в отличие от Format(), переполняются уже на E29.
              Цитата Mikle @

              Решение для чисел с <E29, стало быть. )

              Добавлено
              Ну, можно объединить тогда. Если E >28, Debug.Print Format(num,"#"), если меньше - CDec.
                Цитата Сергей85 @
                Ну, можно объединить тогда. Если E >28, Debug.Print Format(num,"#"), если меньше - CDec.

                А если меньше E-29?
                  Цитата Mikle @

                  Слишком маловероятно. Вы о слишком больших крайностях говорите. )
                    Цитата Сергей85 @
                    Вы о слишком больших крайностях говорите.

                    Так я же не знаю, зачем это, вот и смотрю задачу целиком.
                    А, скажем, E-14, это не очень крайность? Начиная с E-14 при использовании CDec начинают теряться значащие цифры.
                      Ну, вот это я уже не знал.

                      Добавлено
                      У меня до E-12 проверялось.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0571 ]   [ 16 queries used ]   [ Generated: 3.05.24, 01:35 GMT ]