In the context of this exercise, can we perform calculations between Decimal objects and other values?

Answer

Yes, you can treat the Decimal object instances similar to a number, and apply it in operations with other numeric types, except for float values, which will cause an error.

Example

from decimal import Decimal
# With an integer.
print(Decimal("10.5") + 3) # 13.5
# With a float.
# This will give an error
print(Decimal("10.5") + 3.0)
# Instead, just use the Decimal object for float values.
print(Decimal("10.5") + Decimal("3.0")) # 13.5

There must be a way to cast a float() to another type. The closest I got was with this below. I used 0.0 to illustrate the point and to make sure the answer was still 0.89 which it was.

That will give us a list of all the methods of the Decimal class. Ignore the dunder methods as they are generally used internally.

In the list we spot, from_float. Letâ€™s check with HELP to see its usage and syntaxâ€¦

>>> help(Decimal.from_float)
Help on built-in function from_float:
from_float(f, /) method of builtins.type instance
Class method that converts a float to a decimal number, exactly.
Since 0.1 is not exactly representable in binary floating point,
Decimal.from_float(0.1) is not the same as Decimal('0.1').
>>> Decimal.from_float(0.1)
Decimal('0.1000000000000000055511151231257827021181583404541015625')
>>> Decimal.from_float(float('nan'))
Decimal('NaN')
>>> Decimal.from_float(float('inf'))
Decimal('Infinity')
>>> Decimal.from_float(float('-inf'))
Decimal('-Infinity')
>>>

This doesnâ€™t really answer any questions as much as peer under the hood. The more we study this module, the more practical use we would hope to discover. It will take a lot of tinkering, one suspects owing to the massive amount of abstraction.

what this code is doing i didnâ€™t understand a bit. i thought float is a number but here float is a word. what and how this code is operating float please explain it.

More I try to explain it, more it confuses. This is a module that will take extensive study, more than I have invested to now. Perhaps look for the practical applications of the Decimal module and it will become easier to implement with purpose, rather than novelty. Sorry I could not be of more help.