Автор Тема: Фокус с числами в Blender или своеобразный Python  (Прочитано 2197 раз)

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #15 : 16 Февраль 2017, 20:25:10 »
Цитировать
https://habrahabr.ru/post/112953/
Хорошая статья, стоит почитать.

Способ сравнения с помощью эпсилона, о котором я писал, в ней назван ошибочным, но тут я с ними не согласен. Если знаешь порядок чисел, то и точность можно правильно выбрать.

Оффлайн JBlender

  • Житель
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #16 : 17 Февраль 2017, 01:54:35 »
Я так понял, это проблема представления чисел с плавающей запятой, вообще.  Если есть возможность, то лучше хранить числа в формате с фиксированной запятой, но это будет нехило кушать память...
https://habrahabr.ru/post/112953/
Но в питоне вроде нет типа данных с фиксированой запятой или я ошибаюсь? Или имеется ввиду Decimal?

Оффлайн JBlender

  • Житель
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #17 : 17 Февраль 2017, 02:11:45 »
Кстати, наверно та же проблема и с Location в Blender и прочими параметрами где используется float.

Работая в программе  я замечаю, что при определенных действиях программа сама меняет значения X. Допустим X = 1, а потов почему-то он равен 1.000000001 (мог ошибиться в кол-ве знаков, но суть думаю ясна). Убираю дробную часть, а она не убирается. Только после передвижения объекта решается вопрос. Мелочь, а не приятно. :)

Я почти уверен, что данных проблем нет в 3D MAX, MAYA и пр. значит они как-то ее решили? Так почему же ее не решат разработчики Blender'а?

Оффлайн Samovar

  • Житель
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #18 : 17 Февраль 2017, 16:17:35 »
Цитировать
Или имеется ввиду Decimal?
Скорее всего. В Python не особо шарю, надо спросить совета у Striver или sungreen.

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #19 : 17 Февраль 2017, 18:49:19 »
Цитировать
Но в питоне вроде нет типа данных с фиксированой запятой или я ошибаюсь? Или имеется ввиду Decimal?
Да, как я и писал, это тип данных с фиксированной запятой.
Код
>>> from decimal import Decimal
>>> a=Decimal("0.1")
>>> a
Decimal('0.1')
>>> b=a+a+a
>>> b
Decimal('0.3')
>>> float(b)
0.3
Я, пока работал в унылой госконторе, все расчёты с деньгами в Питоне только через этот формат делал.
Я не уверен, но вроде, в нём числа хранятся в строковом виде.

Оффлайн Samovar

  • Житель
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #20 : 17 Февраль 2017, 19:29:38 »
...в строковом виде хранить действительно надёжней, т.к. нет естественного округления.
но памяти жрут наверно (один символ - 1 байт в ASCII, а в Юникоде - 2 Байта) и тормозят, т.к вначале строки надо преобразовать в числовой формат, выполнить математические операции (тут вопрос!? операции выполняются внутренним алгоритмом с фиксированной запятой или используется  конвертация в формат с плавающей и обычная с ними арифметика), и обратно преобразовать в строки...

« Последнее редактирование: 17 Февраль 2017, 20:20:19 от Samovar »

Оффлайн JBlender

  • Житель
Re: Фокус с числами в Blender или своеобразный Python
« Ответ #21 : 18 Февраль 2017, 12:28:23 »
Всем большое спасибо!

А то уж прям потерял верю в компьютеры! ;)

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 111
Автор: LEXA ANЭGROWND
blender.png
Скачано: 118
Автор: ipv2007
4.png
Скачано: 147
Автор: hiroyukiss
2.png
Скачано: 170
Автор: hiroyukiss

Скачано: 183
Автор: Dilifa12