Como converter pythons tipo decimal () em um INT e expoente

Gostaria de usar o tipo de dados Decimal () em python e convertê-lo em um número inteiro e expoente para que eu possa enviar esses dados para um microcontrolador / plc com precisão total e controle decimal.https://docs.python.org/2/library/decimal.html

Eu tenho que trabalhar, mas é uma tolice; alguém sabe uma maneira melhor? Caso contrário, que caminho tomaria para escrever uma função de nível inferior "as_int ()"?

Código de exemplo:

from decimal import *
d=Decimal('3.14159')
t=d.as_tuple()
if t[0] == 0:
    sign=1
else:
    sign=-1

digits= t[1]
theExponent=t[2]
theInteger=sign * int(''.join(map(str,digits)))

theExponent
theInteger

Para aqueles que não têm PLCs programados, minha alternativa é usar um int e declarar o ponto decimal em ambos os sistemas ou usar um ponto flutuante (que apenas alguns PLCs suportam) e está com perdas. Então você pode ver por que ser capaz de fazer isso seria incrível!

Desde já, obrigado!

questionAnswers(4)

yourAnswerToTheQuestion