in_kant (in_kant) wrote,
in_kant
in_kant

ни фига себе

Можете называть меня ретроградом, но простые утилитки для себя я пишу на VB6 потому что я больше ни на чем не умею он простой, я в два движения мышью делаю GUI и после компиляции получается крохотная exe-шка в 50 килобайт, которая не требует никаких дополнительных dll-ок или какого-нибудь монструозного runtime environment'а.

Ну так вот: я только что обнаружил, что он делает ошибку в простых матеметических операциях. Например, после исполнения вот такого кода

For x = 1 To 2000
a = a + 0.001
Next x

переменная a должна, естественно, принять значение = 2 (разумеется, она была обнулена перед циклом).

А получается 2.000037 если a была объявлена как "single" или 1.99999999999989, если была "double". Чем больше раз повторять сложение, тем бОльшая ошибка накапливается.

Проблема фиксится добавлением функции Val() вокруг сложения и объявлением переменной как "double".

Нет, я понимаю, когда ошибка в -дцатом знаке возникает при возведении в дробную степень или там вычислении логарифма какого. Но простое сложение?

Век живи - век учись.
Tags: работа
Subscribe

  • Москва: UPD 08/07/2021

    Спад продолжается, средними темпами (могло быть лучше, могло быть хуже). Больше сказать особо нечего пока. Rt в Москве по официально…

  • Как бы principal component analysis

    А вот если попробовать разложить московскую кривую на три штамма: условный «классический» уханьский, альфа («британский») и дельта («индийский»).…

  • Москва: технический анализ 2.0 FOLLOWUP 2021-06-29

    Первоначальное падение Rt было очень быстрое, за две недели упали до единицы. Теперь вопрос — смогут ли дальше «упасть» до 0.75 (максимально…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments