Python / Mpmath: почему я не получаю десятичные точки для деления большого числа, а делаю для меньшего числа - PullRequest
2 голосов
/ 06 марта 2020

Почему большое число дает мне целое число (или, по крайней мере, без десятичных знаков), а меньшее число дает мне кучу десятичных знаков? Способ, которым я устанавливаю точность или объявляю переменные неправильно?

import math
from mpmath import *
mp.prec=1000

x = 5431526412865007456
print mpf((x)/6)

ACTUAL OUTPUT: 905254402144167909.0
WANTED OUTPUT: 905254402144167909.3333333333333333333333(…)

x = 5431526413
print mpf((x)/6.)

OUTPUT: 905254402.16666662693023681640625

1 Ответ

2 голосов
/ 06 марта 2020

Попробуйте использовать mpf(x)/6 или mpf(x)/6.0. Причина, по которой ваш код не сработал, состоит в том, что он выполнил деление с использованием нормальных правил Python, , а затем преобразовал его в число с произвольной точностью, тогда как сначала оно преобразуется, поэтому деление выполняется с использованием математика произвольной точности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...