suppose que j'ai le script IronPython suivant:Existe-t-il une notation littérale décimale dans IronPython?
def Calculate(input):
return input * 1.21
Appelée de C# avec une décimale, cette fonction retourne un double:
var python = Python.CreateRuntime();
dynamic engine = python.UseFile("mypythonscript.py")
decimal input = 100m; // input is of type Decimal
// next line throws RuntimeBinderException:
// "cannot implicitly convert double to decimal"
decimal result = engine.Calculate(input);
Il me semble avoir deux options:
First , Je pourrais lancer au côté C#: ça me semble un non-aller car je pourrais perdre la précision.
decimal result = (decimal)engine.Calculate(input);
Deuxième option est d'utiliser System.Decimal dans le script python: travaux, mais le script pollue un peu ...
from System import *
def CalculateVAT(amount):
return amount * Decimal(1.21)
Y at-il une notation sténographique DLR que le nombre devrait 1.21 être interprété comme une décimale, un peu comme si j'utilisais la notation '1.21m' en C#? Ou y a-t-il un autre moyen de forcer la décimale à être utilisée au lieu du double?
Merci. Je vais m'en tenir à la notation décimale (1.21). Dans ce cas, je peux vivre avec le constructeur à partir d'un point flottant, car il n'y aura pas de perte de précision dans mon cas. J'étais plus préoccupé par le résultat du calcul. – jeroenh