| 
    
            
         
         | 
    
  | 
как убрать округление в дробном числе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        bug16    
     30.01.14 
            ✎
    17:55 
 | 
         
        вообщем с 8кой пока на "ВЫ". 
 
        Имеется регистр сведений с ресурсом Z1 типа число. Число длинной 14, точностью 8. Допустим делаю такую запись Регистр.Z1=Массив.z1; Где Массив.Z1 = 99,999999999999999999999999895 и в итоге Регистр.Z1 будет равен 100, а мне конкретно надо чтобы Регистр.Z1=99,999999999 то есть как бы срабатывает округление, а хочется чтобы было просто обрезание дробной части... Наверное надо конкретно Массив.Z1 как то обрезать... Подскажите в какую сторону смотреть? ))  | 
|||
| 
    1
    
        Ndochp    
     30.01.14 
            ✎
    17:56 
 | 
         
        половину предпоследнего разряда вычти безусловно.     
         | 
|||
| 
    2
    
        Ndochp    
     30.01.14 
            ✎
    17:57 
 | 
         
        ТОчнее не предпоследнего, а последнего+1     
         | 
|||
| 
    3
    
        ДенисЧ    
     30.01.14 
            ✎
    17:58 
 | 
         
        Регистр.Z1=Цел(Массив.z1 * 1000000000)/1000000000     
         | 
|||
| 
    4
    
        Wobland    
     30.01.14 
            ✎
    17:58 
 | 
         
        а что, правда 100.0 будет при такой точности?     
         | 
|||
| 
    5
    
        bug16    
     30.01.14 
            ✎
    18:00 
 | 
         
        типа так Окр(Массив.U-0.000000005,8,0)     
         | 
|||
| 
    6
    
        bug16    
     30.01.14 
            ✎
    18:00 
 | 
         
        (4) ага..... ((     
         | 
|||
| 
    7
    
        Euguln    
     30.01.14 
            ✎
    18:00 
 | 
         
        (4) По крайней мере Окр(99,999999999999999999999999895, 2) = 100     
         | 
|||
| 
    8
    
        Ndochp    
     30.01.14 
            ✎
    18:02 
 | 
         
        (6) Регистр.Z1=Массив.z1-0,000 000 005;     
         | 
|||
| 
    9
    
        bug16    
     30.01.14 
            ✎
    18:07 
 | 
         
        (8) Благодарю за наводку ;)     
         | 
|||
| 
    10
    
        bug16    
     30.01.14 
            ✎
    19:33 
 | 
         
        хм... а теперь другой вариант получается, если Массив.z1=99,000000000000000000000000
 
        тогда Регистр.Z1=Массив.z1-0.000000005=99,00000001 тоже не правильно получается ((  | 
|||
| 
    11
    
        m-serg74    
     30.01.14 
            ✎
    19:36 
 | 
         
        (10) через Если не катит?     
         | 
|||
| 
    12
    
        NcSteel    
     30.01.14 
            ✎
    19:36 
 | 
         
        (10) Сделай правильно.     
         | 
|||
| 
    13
    
        hhhh    
     30.01.14 
            ✎
    19:57 
 | 
         
        (10) не 0 05 а 000049     
         | 
|||
| 
    14
    
        Prince-Sentido    
     30.01.14 
            ✎
    20:12 
 | 
         
        Вечер добрый!
 
        Результат = ЭлементыФормы.Число.Значение; ЗначениеОкругления = ЭлементыФормы.Округлять.Значение; ЦелаяЧасть = Результат - Число("0,"+Прав(Результат,СтрДлина(Результат)-Найти(Результат, ","))); ДробнаяЧасть = Число("0,"+Прав(Результат,СтрДлина(Результат)-Найти(Результат, ","))); Результат = Число(Лев(ДробнаяЧасть,ЗначениеОкругления+2)) + ЦелаяЧасть; Сообщить(Результат);  | 
|||
| 
    15
    
        Ненавижу 1С    
     гуру 
    30.01.14 
            ✎
    20:16 
 | 
         
        (14) это стёб?     
         | 
|||
| 
    16
    
        Ненавижу 1С    
     гуру 
    30.01.14 
            ✎
    20:16 
 | 
         
        ответ был в (3)     
         | 
|||
| 
    17
    
        Prince-Sentido    
     30.01.14 
            ✎
    20:20 
 | 
         
        (16) просмотрел, извиняюсь     
         | 
|||
| 
    18
    
        Ndochp    
     31.01.14 
            ✎
    09:27 
 | 
         
        (10) Ты в консоли проверял?
 
        99,000000000000000000000000 -0.000000005= 98.999999995~ 99.00000000 откуда ты единичку на конце берешь я ХЗ  | 
|||
| 
    19
    
        vhl    
     31.01.14 
            ✎
    10:51 
 | 
         
        (17) Создай тему@читай через строчку. Девиз мисты     
         | 
|||
| 
    20
    
        catena    
     31.01.14 
            ✎
    10:52 
 | 
         
        Интересно, 0.9 ближе к 1 или к 0?     
         | 
|||
| 
    21
    
        Wobland    
     31.01.14 
            ✎
    10:54 
 | 
         
        (20) к 0.91     
         | 
|||
| 
    22
    
        Ndochp    
     31.01.14 
            ✎
    10:55 
 | 
         
        (20) It depends.
 
        Если у тебя 900 рублей, а товар стоит 1000, то ты ближе к тому чтобы купить его или нет?  | 
|||
| 
    23
    
        catena    
     31.01.14 
            ✎
    10:56 
 | 
         
        (21)Мы ж идем в сторону уменьшения разрядности.
 
        Еще к размышлению, между числами 0.(9) и 1 не найдется ни одного числа. Никакого. Ваще. Значит по определению они равны.  | 
|||
| 
    24
    
        catena    
     31.01.14 
            ✎
    10:57 
 | 
         
        (22)Это другая задача :)     
         | 
|||
| 
    25
    
        Wobland    
     31.01.14 
            ✎
    10:58 
 | 
         
        (23) если ты сумела определить 0.(9) и 1, значит, они не равны
 
        бармен, ещё кружечку!  | 
|||
| 
    26
    
        Зойч    
     31.01.14 
            ✎
    10:58 
 | 
         
        (22) если ты в египте, то ты его купишь однозначно и еще останется     
         | 
|||
| 
    27
    
        Ndochp    
     31.01.14 
            ✎
    10:58 
 | 
         
        9 в периоде да, равны именно по определению. Но с такой разрядностью считать компы не умеют. А вот все недопериодные девятки единице могут быть равны только из физических условий задачи.     
         | 
|||
| 
    28
    
        Ndochp    
     31.01.14 
            ✎
    11:00 
 | 
         
        (25) Читайте математику, числа вводятся как ряды и для 0,(9) и 1 они совпадают. На пальцах не расскажу, институт был давно.     
         | 
|||
| 
    29
    
        Wobland    
     31.01.14 
            ✎
    11:03 
 | 
         
        (28) тоже давно было. но интуитивно имхается мне, множество чисел, где 0.(9)=1, несколько не вещественно     
         | 
|||
| 
    30
    
        Ненавижу 1С    
     гуру 
    31.01.14 
            ✎
    11:07 
 | 
         
        (29) вы просто поверьте, а поймете потом (с) Чайф     
         | 
|||
| 
    31
    
        Wobland    
     31.01.14 
            ✎
    11:08 
 | 
         
        (28) (30) а скажите ключевое слово для почитать на досуге, плз     
         | 
|||
| 
    32
    
        Ndochp    
     31.01.14 
            ✎
    11:08 
 | 
         
        (28)Не, освежил - как раз вещественные.
 
        wiki:Вещественное_число#.D0.9D.D0.B0.D0.B8.D0.B2.D0.BD.D0.B0.D1.8F_.D1.82.D0.B5.D0.BE.D1.80.D0.B8.D1.8F_.D0.B2.D0.B5.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D1.87.D0.B8.D1.81.D0.B5.D0.BB "Два вещественных числа \alpha = [a_n] и \beta = [b_n], определённые соответственно фундаментальными последовательностями \{a_n\} и \{b_n\}, называются равными, если \lim_{n \to \infty} \left ( a_n - b_n\right ) = 0 " То есть, 0,(9) и 1 задаются рядами 0,9 0,99 0,999 ... и 1 1 1 1 1 соответственно. Разность их членов стемится к нулю, значит числа равны.  | 
|||
| 
    33
    
        Ненавижу 1С    
     гуру 
    31.01.14 
            ✎
    11:09 
 | 
||||
| 
    34
    
        Ненавижу 1С    
     гуру 
    31.01.14 
            ✎
    11:09 
 | 
         
        +(33) кривая ссылка, в википедии набери строку "0,(9)"     
         | 
|||
| 
    35
    
        supremum    
     31.01.14 
            ✎
    11:12 
 | 
         
        Тут есть тонкость.
 
        0.9(9)=1 - это по определению , но предел суммы дробей - да, равен единице.  | 
|||
| 
    36
    
        Ndochp    
     31.01.14 
            ✎
    11:13 
 | 
         
        (35) Там не предел суммы. Там предел разности дальних членов фундаментальной последовательности.     
         | 
|||
| 
    37
    
        supremum    
     31.01.14 
            ✎
    11:15 
 | 
         
        (36) Монопеносуально.     
         | 
|||
| 
    38
    
        Ndochp    
     31.01.14 
            ✎
    11:23 
 | 
         
        (35) Кстати, откуда у тебя "но" взялось? ли ты очепятался, или там И должно стоять.
 
        а то фраза "то-то равно единице, но то-то2 равно единице" не звучит. Противопоставления то нету.  | 
|||
| 
    39
    
        catena    
     31.01.14 
            ✎
    11:24 
 | 
         
        (29)Это было одним из первых убийственных открытий на мехмате. После школы просто мир перевернулся. Так же, как и понимание того, что рациональных чисел больше, чем натуральных, хотя и тех и тех бесконечно много. А вещественных еще больше.     
         | 
|||
| 
    40
    
        Ndochp    
     31.01.14 
            ✎
    11:24 
 | 
         
        +(38) Не понятно, в чем тонкость.     
         | 
|||
| 
    41
    
        Ndochp    
     31.01.14 
            ✎
    11:25 
 | 
         
        (39) Рациональных же вроде столько же, сколько целых и натуральных, не?     
         | 
|||
| 
    42
    
        supremum    
     31.01.14 
            ✎
    11:26 
 | 
         
        (40) Это равенство не доказывается, а определяется, доказывается предел.
 
        (41) Смотря как считать.  | 
|||
| 
    43
    
        catena    
     31.01.14 
            ✎
    11:30 
 | 
         
        (41)В множестве вещественных чисел, множество рациональных плотно, а натуральных нет.     
         | 
|||
| 
    44
    
        Ненавижу 1С    
     гуру 
    31.01.14 
            ✎
    11:36 
 | 
         
        (41) в определенном смысле да     
         | 
|||
| 
    45
    
        Ndochp    
     31.01.14 
            ✎
    12:51 
 | 
         
        (42) Оно доказывается, см (32)     
         | 
|||
| 
    46
    
        Ndochp    
     31.01.14 
            ✎
    12:57 
 | 
         
        (43) Чтобы оценить количество рациональных чисел, нужно найти мощность их множества. Легко доказать, что множество рациональных чисел счётно. (с) вика.
 
        А плотность это ни о чем. Есть более чем счетные множества, которые при этом не плотны. http://dic.academic.ru/dic.nsf/bse/93134/Кантора  | 
|||
| 
    47
    
        Torquader    
     31.01.14 
            ✎
    13:33 
 | 
         
        Не, ребята, это всё хорошо, но округление отбрасыванием - это неверно.
 
        Тогда для вас всегда допустимо, что 2=1.999999 Лучше округлять математически, а если остаются ошибки округления - потом их разносить по строкам, чтобы было наиболее похоже на правду.  | 
|||
| 
    48
    
        supremum    
     31.01.14 
            ✎
    13:42 
 | 
         
        (46) Тут такая штука: на любом числовом отрезке длиной более нуля рациональных чисел больше чем целых.
 
        С другой стороны да, есть взаимнооднозначное соответствие между между рациональными и целыми числами.  | 
|||
| 
    49
    
        bug16    
     31.01.14 
            ✎
    19:41 
 | 
         
        корявенько, но сделал как то так.. 
 
        Если Массив.U1<0 тогда Если НЕ (-Числ1=Цел(Массив.U1)) тогда Регистр.U1= -Числ1-0.99999999; Иначе Регистр.U1=Массив.u1; КонецЕсли; ИначеЕсли Массив.U1>0 тогда Если НЕ (Числ1=Цел(Массив.U1)) тогда Регистр.U1= Числ1+0.99999999; Иначе Регистр.U1=Массив.u1; КонецЕсли; КонецЕсли;  | 
|||
| 
    50
    
        DS    
     31.01.14 
            ✎
    20:17 
 | 
         
        (49) Так и не понял, чем (3) не понравилось. Или оплата посимвольная?     
         | 
|||
| 
    51
    
        supremum    
     31.01.14 
            ✎
    21:24 
 | 
         
        Просмотрел...
 
        (45) Нет, это не так.  | 
|||
| 
    52
    
        supremum    
     31.01.14 
            ✎
    21:33 
 | 
         
        +(51) Вообще, элементарно доказывается, что 0,9(9)<>1
 
        (32) Не значит!  | 
|||
| 
    53
    
        bug16    
     01.02.14 
            ✎
    10:02 
 | 
         
        (50) вариант из (3) тоже не правильно отрабатывал...     
         | 
|||
| 
    54
    
        Ndochp    
     03.02.14 
            ✎
    11:15 
 | 
         
        (52) Нука?
 
        И что не значит? берем определение вещественного числа по Кантору (ссылка приведена в (32)). Последовательность 1 1 1 1 ... фундаментальна по условию Коши Последовательность 0,9 0,99 0,999 ... фундаментальна по условию Коши Предел 1-0,999...9 равен 0 при росте числа девяток. По определению "Два вещественных числа ... определённые соответственно фундаментальными последовательностями, называются равными, если \lim_{n \to \infty}( a_n-b_n) = 0" Значит 1 = 0,9(9). Другое дело, что если брать определение по Веерштрассу, то там да, практически по определению.  | 
|||
| 
    55
    
        supremum    
     03.02.14 
            ✎
    13:36 
 | 
         
        (54) Не вижу противоречия с (35)
 
        1) Любой элемент этой последовательности принадлежат открытому интервалу: (0,1) - видно, что единица этому интервалу не принадлежит и ни один член последовательности этой единицы не достигает. 2) С другой стороны мы знаем точную верхнюю грань этой последовательности, знаем, что эта последовательность стремится к единице и вполне логично определить равенство, как равенство пределов (либо равенство предела разности нулю). Но это именно равенство пределов. Тут мы подходим к определению равенства через пределы фундаментальных последовательностей. Тут по сути интервал как бы замыкается с одной стороны. Но я не стал бы ставить равенства между границей множества и замыканием, все же разные понятия.  | 
|||
| 
    56
    
        Ndochp    
     05.02.14 
            ✎
    18:41 
 | 
         
        (55)
 
        а) А я про 35 и не писал. Я про (52) уже. б) первое утверждение из (55) - не верно. Так как 0,(9) = 1 по определению вещественных чисел "по Веерштрассу" (через бесконечные десятичные дроби), или это же доказывается через фундаментальные последовательности, что есть ОПРЕДЕЛЕНИЕ равенства вещественных чисел "по Кантору". Так что куда ни кинь, а 0,(9)=1. Нам вообще говоря не важно, где болтаются члены фундаментальной последовательности. Пусть хоть до n=10^10 они равны n^n, а потом 1, все равно последовательность фундаментальна, и число, которое она представляет есть именно ее предел.  | 
|||
| 
    57
    
        supremum    
     06.02.14 
            ✎
    09:16 
 | 
         
        (56) 
 
        1) Почему не верно? пусть a_n=1-10^(-n) и N - целые больше нуля Для всех n в N a_n<1 - строгое неравенство 2) 0.(9)=1 - всего лишь другая запись lim a_n=lim b_m n, m стремятся к бесконечности, но не достигают ее. b_m=1 , m в N 3) Без разницы, как определять a_n: как сумму ряда или как числовую последовательность 4) Вейерштрасс 5) Мне больше нравятся Дедекиндовы сечения.  | 
|||
| 
    58
    
        Ndochp    
     06.02.14 
            ✎
    10:03 
 | 
         
        (57)Так вещественное число это и есть lim a_n по сути, а не какой-то там член последовательности. Значит 0,(9) = 1     
         | 
|||
| 
    59
    
        supremum    
     06.02.14 
            ✎
    11:52 
 | 
         
        (58) 
 
        Тогда зачем такая запись? Вот тут и появляется недостаток такой записи. Она дает способ построения числа, а по построению все просто см. (51) п. 1. Возникает иллюзия, что последовательность достигает единицы, что не так. По мне лучше символ "0.9(9)" объявить другой записью единицы. Все, без "доказательств". Да вроде так и делается сейчас. Похоже тема давно себя исчерпала )  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |