Обява

Свий
Няма добавени обяви.

Грешка в закръглението на Windows Calculator

Свий
X
 
  • Филтър
  • Час
  • Покажи
Изчисти всичко
нови мнения

  • #91
    От: Грешка в закръглението на Windows Calculator

    Първоначално публикуван от Агоп Серопян (аниматора) Преглед на мнение
    ...ами може МС да имат проблем в алгоритъма или нарочно да е оставено така кой знае.
    Право в целта! Надявах се именно това да е "пост №2" и всичко да започне от тук нататък.

    Коментар


    • #92
      От: Грешка в закръглението на Windows Calculator

      Първоначално публикуван от sparkybg Преглед на мнение
      За претупаните алгоритми си прав. Ама, проблема го има и във VB. Имаме програма за платежни документи, която посмъртно не искаше да закръгля точно определена сума левчета (не ме карай да си спомням колко беше), макар да работя само с числа с двойна точност. Разбирай - въвеждаш примерно 5.36, а visual basic решава че е 5.35 или 5.37.

      Оправих го някак тогава, ама е факт че трябваше аз да го оправя, защото VB, със всичките му алгоритми сам не се справи.
      sparky има няколко метода с които да укажеш на VB как искаш да закръгляш числата. Всичките са базирани на методи от статистиката. Не са особенно популярни и повечето ръководства не ги разглеждат сериозно, но има такива. Проблема, който описваш и аз съм го имал и точно заради него прекарах няколко седмици в ровене. За съжаление на VB не съм писал вече от повече от пет-шест години и в момента нямам друго, като по-конкретен спомен освен, че трябваше да питам пет-шест човека преди да стигна до задоволително решение.

      Коментар


      • #93
        От: Грешка в закръглението на Windows Calculator

        Ясно е какъв е проблема още от началото - не е ясно обаче ако MS бяха избрали варианта да закръглят до 0 дали нямаше да се появи пост "бъг в windows calculator показва 0 а трябва да покаже друго"
        When I'm good, I'm very good. When I'm bad, I'm even better!

        Коментар


        • #94
          От: Грешка в закръглението на Windows Calculator

          Първоначално публикуван от persuader Преглед на мнение
          Ясно е какъв е проблема още от началото - не е ясно обаче ако MS бяха избрали варианта да закръглят до 0 дали нямаше да се появи пост "бъг в windows calculator показва 0 а трябва да покаже друго"
          "Проблема" е във факта, коя цифра закръглява при действията. Закръглява тази с която работи първо, а не тази, която ние си мислим за правилно - което е напълно окей от математическа гледна точка. В смисъл за това, ако разбиеш операцията на отделни операции ще е "правилна", ако я изпълниш заедно ще е "погрешна"...

          //EDIT2: Препрочетох си поста и установих, че все още е неясен. Резултата е такъв (1.999 в период) защото обединявайки операциите ТИ указваш, че искаш изчислението да се извърши БЕЗ да се закръглява! Т.е. 4 - 2.0000000000000(в период)1 = 1.9999(в период)

          Така се надявам всички да ме разберат по-лесно...

          Освен всичко числата в период се приема за безопасно да се закръглят на по-горна цифра заради факта, че периода прави разликата пренебрежимо малка дори и във физиката - има просторно доказателство по въпроса - при това от физик. В страни от просторното доказателство - мисля, че е чисто и просто (къпан полицай!) логично да се приеме, че подобен период дава безумно малки фракции от цялото. Просто от Майкрософт (о, Господи защо, защо?) са решили, че е правилно да оставят избора на обикновения потребител....
          Последно редактирано от господин никой; 15-12-11, 11:52. Причина: смислова добавка, EDIT...

          Коментар


          • #95
            От: Грешка в закръглението на Windows Calculator

            Първоначално публикуван от persuader Преглед на мнение
            Ясно е какъв е проблема още от началото - не е ясно обаче ако MS бяха избрали варианта да закръглят до 0 дали нямаше да се появи пост "бъг в windows calculator показва 0 а трябва да покаже друго"
            MS просто не закръглет, в случая. Просто показват на екрана на калкулатора числото, съобразявайки се с мястото. Ако тръгнат да закръглят ще се появят други подводни камъни в някои случаи, когато работиш с много големи или много малки числа.

            Изхода от ситуацията е ползването на 10-ични числа с плаваща запетая, и алгоритъм, закръглящ резултата до възможно най-голямата точност. Така по естествен начин ако всичката точност на съхранение е примерно до 30-я знак, алгоритъма за корен ще сметна до 31-я знак, и ще закръгли всичко до 30 знака, като се получи точно 2.

            Предполагам по не твърде различен от това начин работят обикновените настолни калкулатори, където проблеми като горния не съм забелязал да съществуват.
            Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

            Коментар


            • #96
              От: Грешка в закръглението на Windows Calculator

              Първоначално публикуван от sparkybg Преглед на мнение
              MS просто не закръглет, в случая.
              По-горе бях показал пример, че закръглят (корен от 4 минус 1 си показва добре закръгленото 1, корен от 4 минус 3 си показва добре закръглено -1). Иначе "отзад" на това което виждаме числото се пази коректно - незакръглено. Та какъв е точно случая с нулата и защо не го правят това закръгление точно при нея?

              Коментар


              • #97
                От: Грешка в закръглението на Windows Calculator

                Първоначално публикуван от Wattie Преглед на мнение
                корен от 4 минус 1 си показва добре закръгленото 1, корен от 4 минус 3 си показва добре закръглено -1...
                Защото на екрана няма място за 0.999999999999999999999999999999999999999999999999999999999999999 или -0.9999999999999999999999999999999999999999999999

                НЕ ЗАКРЪГЛЯТ НИЩИЧКО! Закръглят показаното на екрана според мястото, което има. На заден план резултата си седи незакръглен по никакъв начин. От там и "грешката".
                Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                Коментар


                • #98
                  От: Грешка в закръглението на Windows Calculator

                  Първоначално публикуван от sparkybg Преглед на мнение
                  НЕ ЗАКРЪГЛЯТ НИЩИЧКО! Закръглят показаното на екрана според мястото, което има. На заден план резултата си седи незакръглен по никакъв начин. От там и "грешката".
                  Това и аз го казах няколко пъти в дискусията и други хора го намекнаха и казаха. Бърз пример:

                  Първоначално публикуван от Wattie Преглед на мнение
                  Виж в случая говорим за закръгление на представянето. Иначе калкулатора правилно си съхранява числата незакръглени (даже по-горе в дискусията беше даден пример). Говорим за репрезентационната част.
                  А отговорът на "защо показаното на екрана не се закръгля когато става въпрос за нула" е толкова тривиално прост, че направо е срамота, че никой досега не го каза в прав текст и то още в началото! А отговорът е, че това е нарочно напомняне за потребителя за това, което съм цитирал от теб. Калкулаторът специално показва на потребителя, че запазеното число не е абсолютно точно на нула, а е с голямо, но все пак приближение. По този начин го уведомява, че ако ще дели на това число, то ще се получи не много очакван резултат.

                  Например ако потребителят дели директно 2 на 0, то той би трябвало да очаква съобщение "Cannot divide by zero".

                  Но когато потребителят дели 2 на -8.1648465955514287168521180122928e-39, то той ще получи резултат -2.4495255074231142113142346007898e+38.

                  Е отговорът на въпроса - ако Windows calc ПРЕДСТАВЯШЕ число близко до нула като нула, а пък същевременно го пази като число с плаваща запетая (както и го прави), то щяхме лесно да си направим редица примери, при които Windows calc ще показва, че може да се дели на нула... И тогава осмиването на Microsoft щеше да е голямо. А сега няма такова.

                  Заключение: Няма никаква грешка в калкулатора на Windows. Това е "feature", който ни предпазва от грешки свързани с очаквано делене на нула, а не е никакъв "bug".

                  П.П. И да, нарочно първият пост беше написан толкова провокативно. За да видим що за стока... и така нататък.

                  Коментар


                  • #99
                    От: Грешка в закръглението на Windows Calculator

                    За пореден път се убеждавам, че модерастите са баааааааси и търпеливите пичове...
                    Wattie, ти какво точно преподаваш, ако не е тайна? Стига да не те бъркам с някого де.
                    О879 342 54О Не си пъхайте пръстите където ви падне, не са чак толкова много...

                    Коментар


                    • От: Грешка в закръглението на Windows Calculator

                      Първоначално публикуван от tef4o Преглед на мнение
                      Стига да не те бъркам с някого де.
                      Хи, хи. Не , не го бъркаш с Филип. Математика, дето беше в БАН, ама дали е там още.
                      подаръци за мъже от FACOM
                      промоция на читави инструменти

                      и на хоби такива

                      тел. О879 Ч8Ч 2З5

                      Коментар


                      • От: Грешка в закръглението на Windows Calculator

                        Първоначално публикуван от maystor Преглед на мнение
                        Хи, хи. Не , не го бъркаш с Филип. Математика, дето беше в БАН, ама дали е там още.
                        Последно май в ТУ е засичан.

                        Коментар


                        • От: Грешка в закръглението на Windows Calculator

                          Мда. За мое съжаление отдавна мина времето, когато тия мисли бяха част от мене и от живота ми. Не че някога съм бил нещо в програмирането или в математиката, но май съм забравил повече, отколкото е допустимо. Щеше да ми е интересно пак да послушам разговор за тия врътки, за целочислените аритметики, и каквото още там имаше за ускоряване на сметките и блокиране на грешките при много итерации. Просто не трябваше да се отплесвате, и не си струва никога вече да се задълбочавате в психологията на математиците, освен ако тя не е тема на ваше изследване. Има типове хора, които по принцип мислят не съвсем като другите, и нищо не може да се направи по въпроса. Все едно за какво разговаряте със случаен човек, ако той е математик, или физик, или художник, неизбежно ще се сблъскате с непривичен разум и изводи, които друг няма да направи. За повечето хора това е неприятно. Сега такива почти няма, и срещите с тях са толкова по-необичайни. Просто не бързайте да воювате с тях, ами се опитайте да разберете какво е това насреща ви. В битов план не са опасни за вас, понеже са самодостатъчни, и никога не искат нищо от никого. Убиват само при самоотбрана - като дърветата покрай шосето.

                          Коментар


                          • От: Грешка в закръглението на Windows Calculator

                            Първоначално публикуван от Wattie Преглед на мнение
                            ...А отговорът е, че това е нарочно напомняне за потребителя за това, което съм цитирал от теб. Калкулаторът специално показва на потребителя, че запазеното число не е абсолютно точно на нула, а е с голямо, но все пак приближение...
                            "Напомнянето" е вторичен ефект. Както на екрана няма място за 0.000000000000000000000000000000000000058, така няма място и за 1.000000000000000000000000000000000000058. Да, ама едното може да се представи кратко като 5.8Е-37, а другото няма друг начин на предтставяне в наличното място, освен като проста единица. Или по-точно има - 1+5.8Е-37, ама не знам да има такъв приет стандарт, а и да има, той няма да върши работа винаги.

                            Едното решение го казах по-горе - работи се с десетични числа и алгоритми, вървящи до максималната точност и закръглящи всичко нататък, пак десетично. Другото решение е просто след числото да има указател че изобразеното не е точна стойност а "малко над" или "малко под" нея. И двата метода си имат и предимства, и недостатъци. Виждал съм и двете реализации върху ръчен калкулатор.
                            Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                            Коментар


                            • От: Грешка в закръглението на Windows Calculator

                              Пичови, калкураторот на видовс е супер. Ибо примирно доказува дека Коледа и Вси светии (Хелоун по модерному) е същата раута.

                              Oct 31 = Dec 25

                              И азъ вамъ г~лю: просите и дастсѧ вамъ: ищите, и ωбрѧщете: толцыте, и ωтверзетсѧ вамъ: всѧкъ бо просѧй прiемлетъ, и ищѧй ωбретаетъ, и толкоущемоу ωтверзетсѧ

                              Коментар


                              • От: Грешка в закръглението на Windows Calculator

                                Хубуу де

                                Ама защо, според MS и calc

                                SQRT4 < 2 а пък 4^0,5 > 2
                                байо, кажи ти моите и аз твоите кривици, па да се поправим и все (за)едно да вървим, ако ще бъдем хора.
                                Един луд: на много простите хора всичко им се вижда сложно…
                                Суперспам - спама на суперите

                                Коментар

                                Активност за темата

                                Свий

                                В момента има 1 потребители онлайн. 0 потребители и 1 гости.

                                Най-много потребители онлайн 8,787 в 17:37 на 21-06-23.

                                Зареждам...
                                X