簡體   English   中英

屏蔽的十進制輸入允許負值

[英]Masked Decimal Input Allow Negative Values

我正在使用轉換器 class 來屏蔽十進制輸入。 它工作得很好,但我需要允許輸入負值。

如何修改此代碼以接受負值?

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return Decimal.Parse(value.ToString()).ToString("#0.00");
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string valueFromString = Regex.Replace(value.ToString(), @"\D", "");

            if (valueFromString.Length <= 0)
                return 0m;

            long valueLong;
            if (!long.TryParse(valueFromString, out valueLong))
                return 0m;

            if (valueLong <= 0)
                return 0m;

            return valueLong / 100m;
        }

有很多方法可以解決這個問題 - 一個是

bool isNeg = value.ToString().Trim().StartsWith("-");

...

if (isNeg)
  return -1 * valueLong / 100m;
else
  return valueLong / 100m;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM