【发布时间】:2022-11-29 02:31:42
【问题描述】:
我正在使用转换器类来屏蔽小数输入。它工作得很好,但我需要允许输入负值。
如何修改此代码以接受负值?
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;
}
【问题讨论】:
-
输入负值时会发生什么?它在哪里失败?
-
它将其转换为正值。我相信我需要更改 Regex 语句。
-
您是否逐步检查了调试器中的每一行代码以确定问题发生的确切位置?
-
是的,这一行是去掉“-”符号:string
valueFromString = Regex.Replace(value.ToString(), @"\D", "");
标签: c# xamarin xamarin.forms xamarin.android