|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||||||||
Конструктор объекта Decimal не создаёт числа с нужной точностью (python 3.3.5)21.04.2017, 19:11. Показов 6717. Ответов 35
Метки нет (Все метки)
Друзья! Сперва работаем со строками:
++++++++++++++++++++++++++++++++++++++++ ++++++ Теперь работаем с числами:
В общем, несмешные какие-то шутки у моего интерпретатора. ЧЯДНТ? Спасибо, кто откликнется.
0
|
||||||||||||
| 21.04.2017, 19:11 | |
|
Ответы с готовыми решениями:
35
Autolisp. программа создает сферу не в нужной точке Как округлить decimal с заданной точностью? Что выгодней: (decimal,decimal) или decimal[] |
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 22.04.2017, 14:48 | ||
|
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 14:53 [ТС] | ||
|
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 22.04.2017, 15:04 | ||
|
Ты паникуешь, что вычисления могут пройти не с надлежащей точностью, но в твоем коде этого не происходит, это только твое воображение. https://docs.python.org/3.6/li... t-tutorial
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 15:12 [ТС] | ||
|
https://www.cyberforum.ru/pyth... st10356570 согласно Лутцу, должно вывестись 2.00, а выводится 2. Или Лутц не прав, или я что не так понял, хотя что там понимать во фразе "Когда в выражении участвуют числа с различной точностью представления, Python автоматически выбирает наибольшую точность для представления результата: ", кроме как, что в одном из чисел интерпретатор видит два знака после точки (а в другом после точки знаков нет) и и в результате тоже должно быть два знака после запятой, я не представляю.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 22.04.2017, 15:15 | ||
|
И кстати все таки глянь ссылочку приложенную мной. Ты уже на столько начал сходить с ума, что оф. документации не веришь?
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 15:17 [ТС] | ||
|
Вопрос открыт.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 22.04.2017, 15:18 | |
|
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 15:19 [ТС] | ||
|
А ссылку я гляну, ты не боись.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|||||||
| 22.04.2017, 15:19 | |||||||
0
|
|||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||
| 22.04.2017, 18:04 [ТС] | ||||
|
Добавлено через 2 часа 43 минуты Так, и в третьем примере видит на входе числа '4.0000' и '2', видит после точки 4 знака и в результате пишет 4 знака: '2.0000' И это всё согласно Лутцу. А вот во втором примере интерпретатор поступает НЕ согласно Лутцу. Она на входе видит числа '4' и '2.0000', видит 4 ноля после запятой, но почему-то в результате 4 знака после точки уже не пишет. Может, я Лутца не так понял? А как его ещё-то понимать? Вот мы в примере наблюдаем, что компилятор игнорирует количество знаков после точки в ЗНАМЕНАТЕЛЕ (в делителе). Но Лутц-то это не оговорил, вот в чём дело. Он же не сказал, что правило, им введённое, при делении чисел верно только в том случае, если количество знаков после точки максимальное У ДЕЛИМОГО. Ничего подобного он не пишет. Нет у него градации на числитель и знаменатель. Числа-операнды и баста.
0
|
||||
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
||
| 22.04.2017, 18:41 | ||
|
1
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 18:45 [ТС] | ||
|
0
|
||
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
| 22.04.2017, 18:49 | |
|
Иначе, согласно этой логике Decimal('1.13') * Decimal('1.39') должно быть Decimal('1.57'). Потеряли 2 знака от 1.5707.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 18:58 [ТС] | ||
|
0
|
||
|
|
||
| 22.04.2017, 19:02 | ||
|
Не для быдлокодера (поскольку он меня в личке быссмыссленно послал в перуанский город Nahui) объясняю:
Вот что на самом деле пишет Лутц в оригинале:
однако в некоторых неокрепших умах может вызывать приступы когнитивно-диссонансных расстройств и полную утрату ориентиров. Официальная документация python decimal подтверждает что "converts up to the largest number of decimal digits automaticall" на примере умножения: For multiplication, the “schoolbook” approach uses all the figures in the multiplicands. После этой фразы Лутц приводит вполне адекватный пример сложения, который подтверждает сказанное. Если бы он привел пример с делением, вполне можно допустить, что он сформулировал бы свою мысль немного иначе. В частности, обозначил бы почему при обычном делении int на float int приводится к типу float (смешанная арифметика в действии - "малый" тип приводится к "большему"), а при делении decimal результат выглядит иначе. А дело все в том, что согласно спецификации decimal деление производится при помощи "длинной" арифметики, и как именно достаточно подробно расписано в той же Decimal Arithmetic Specification в разделе Arithmetic operations параграф divide. Я не настолько в этом разбираюсь, чтобы разложить все по полочкам, но похоже, что при делении Decimal('2') на Decimal('1.0') (как и при прочих вариантах деления) ноли конечного результата формируются согласно этому правилу: The exponent of the result is computed by subtracting the sum of the original exponent of the divisor and the value of adjust at the end of the coefficient calculation from the original exponent of the dividend. И все вышеизложенное подтверждает реализация типа Decimal в том же C#, поскольку результаты идентичны тем, которые производит модуль decimal в python.
2
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 22.04.2017, 19:42 [ТС] | ||
да перевод как перевод, что ты в самом деле. Ну переведи сам. Тут хоть наизнанку вывернись, но смысл будет тем же самым. Или чё, опять, знаю, но не скажу?А самое-то главное не в этом. Раз уж ты прав, а я невежа, необходимо найти в оригинале, что речь идёт ИСКЛЮЧИТЕЛЬНО о сложении. А оно не идёт исключительно о сложении- (просто пример сложения приведён). Так что Лутц написал, что написал. И я понял это именно, как он написал. И правильно сделал, поставив его слова под сомнение. А ты... А что ты... Вот, пожалуй и всё.
0
|
||
| 22.04.2017, 19:42 | |
|
Помогаю со студенческими работами здесь
36
this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор) Конструктор класса и конструктор объекта - это одно и тоже?
Python 3.2: как правильно обращаться с типом Decimal Конструктор который создает элементы в списке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|