将变量解析为 Return C# 的问题 - 脚本任务转换

Problem with parsing Variable to Return C# -Script Task Transformation

嘿,我的 Return 值有点问题,它会从一开始就映射到空字符串。由于我是 c# 的新手,所以回答起来可能很容易。

查询:

Private static Decimal parseVatWithoutBla(string originalString) // 4,5 已插入 {

    var cleanedString = string.Empty;
    //var cleanedString = originalString;

        if (originalString.IndexOf(",") > 0)
        {
            if (originalString.IndexOf(".") > originalString.IndexOf(","))
            {
                cleanedString = originalString.Replace(",", "").Replace(".", ",");
             }
        }
        else if (originalString.IndexOf(".") > 0)
        {
            if (originalString.IndexOf(",") > originalString.IndexOf("."))
            {
                cleanedString = originalString.Replace(".", "");
            }
        }
        else if (originalString.IndexOf(",") == -1 && originalString.IndexOf(".") > 0)
        {
            cleanedString = originalString.Replace(".", ",");
        }
        else
        {
        cleanedString = originalString; //cleanedString =4,5
        }
        return Convert.ToDecimal(cleanedString); // returns the Empty string not the 4,5 why?!

添加了描述问题的评论。

if (originalString.IndexOf(",") > 0 && originalString.IndexOf(".") > originalString.IndexOf(","))
    {
            cleanedString = originalString.Replace(",", "").Replace(".", ",");
         
    }
    else if (originalString.IndexOf(".") > 0 && originalString.IndexOf(",") > originalString.IndexOf("."))
    {
            cleanedString = originalString.Replace(".", "");
        
    }
    else if (originalString.IndexOf(",") == -1 && originalString.IndexOf(".") > 0)
    {
        cleanedString = originalString.Replace(".", ",");
    }
    else
    {
    cleanedString = originalString; //cleanedString =4,5
    }
    return Convert.ToDecimal(cleanedString);

因为你的“其他”永远不会 运行。试试这个 if-else 组合