giả sử tôi có kịch bản IronPython sau:Có ký hiệu chữ cho thập phân trong IronPython không?
def Calculate(input):
return input * 1.21
Khi gọi từ C# với một số thập phân, hàm này trả về một đôi:
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);
tôi dường như có hai lựa chọn:
Đầu tiên , Tôi có thể cast ở phía bên C#: có vẻ như không đi vì tôi có thể mất độ chính xác.
decimal result = (decimal)engine.Calculate(input);
tùy chọn thứ hai là sử dụng System.Decimal trong kịch bản python: tác phẩm, nhưng ô nhiễm kịch bản hơi ...
from System import *
def CalculateVAT(amount):
return amount * Decimal(1.21)
Có một ký hiệu DLR ngắn tay rằng số 1,21 nên được hiểu là một số thập phân, giống như tôi sẽ sử dụng ký hiệu '1,21m' trong C#? Hoặc là có cách nào khác để thực thi thập phân được sử dụng thay vì tăng gấp đôi?
Cảm ơn. Tôi sẽ gắn với ký hiệu Thập phân (1,21). Trong trường hợp này, tôi có thể sống với các nhà xây dựng từ một điểm nổi, vì sẽ không có mất chính xác trong trường hợp của tôi. Tôi quan tâm nhiều hơn đến kết quả tính toán. – jeroenh