Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна подсказка 
:(
    Опции темы
Wild
  Дата 28.6.2002, 05:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как побороть округление при работе с дробными числами. Почему a/b, где а=1, b=0.0001 не равно 1000, а равно 0.999999991326387?!?!?!??
  Вверх
Vit
Дата 28.6.2002, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Что-то ты совсем не так делаешь:
1/0.0001=10000 и совсем не 1000 и даже не 0.999999991326387
И компьютер вычисляет это совершенно правильно, без всяких дробей...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
nezabor
Дата 3.5.2008, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



Люди а посмотрите вот эту прогу у меня почему-то выходит 0

Код

Private Sub cmdCalculate_Click()
    Dim cPrincipal As Currency
    Dim fIntRate As Single, nTerm As Integer, cPayment As Currency
    ' Сохраним в переменной cPrincipal величину ссуды
    cPrincipal = Val(txtPrincipal.Text)
    ' Преобразуем величину процентной ставки в её
    ' десятичный эквивалент. Например, число
    ' 12,75 должно быть преобразовано в 0,1275
    fIntRate = Val(txtIntRate.Text) / 100
    ' Преобразуем годовую процентную ставку в месячную,
    ' разделив её на 12 (количество месяцев в году)
    fIntRate = fIntRate / 12
    ' Преобразуем срок погашения ссуды, заданный в годах,
    ' в месяцы, умножив его на 12 (количество месяцев в году)
    nTerm = Val(txtTerm.Text) * 12
    ' Вычислим величину месячного платежа и отобразим его
    ' на экране.
    ' С помощью функции Format() мы преобразуем вычесленное
    ' значение в текстовый вид и заодно улучшим читаемость
    ' цифр на экране.
    cPayment = cPayment * (fIntRate / (1 - (1 + fIntRate) ^ -nTerm))
    txtPayment.Text = Format(cPayment, "Fixed")
End Sub

--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
Akina
Дата 4.5.2008, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(nezabor @  4.5.2008,  00:19 Найти цитируемый пост)
 меня почему-то выходит 0

Так и должно быть. cPayment определено в процедуре, следовательно, инициализируется нулем. Потом на что не умножай - нулем оно и останется.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
nezabor
Дата 4.5.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



да всё спасобо огромное
теперь я всё понял, надо было сначала самому по внимательнее посмотреть
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
cardinal
Дата 4.5.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



nezabor, пошаговая отладка тебе в помощь! smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
nezabor
Дата 4.5.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



А это где?
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
cardinal
Дата 5.5.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.