|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||||||||
Конструктор объекта Decimal не создаёт числа с нужной точностью (python 3.3.5)21.04.2017, 19:11. Показов 6910. Ответов 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 | |
|
this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор) Конструктор класса и конструктор объекта - это одно и тоже?
Python 3.2: как правильно обращаться с типом Decimal Конструктор который создает элементы в списке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|