步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.1 KiB

using MathNet.Numerics;
using System;
3 years ago
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace BBWY.Client.Converters
{
public class InputNumberConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string strValue = value as string;
if (string.IsNullOrEmpty(strValue))
{
3 years ago
return null;
}
3 years ago
decimal result;
if (strValue.IndexOf('.') == strValue.Length - 1 || (strValue.IndexOf('0') == strValue.Length - 1 && strValue.IndexOf('.') != -1) || !decimal.TryParse(strValue, out result))
{
3 years ago
return DependencyProperty.UnsetValue;
}
3 years ago
return result;
//if (string.IsNullOrEmpty(strValue))
// return DependencyProperty.UnsetValue;
//if (strValue.EndsWith("."))
// return DependencyProperty.UnsetValue;
//decimal result = 0M;
//var dotIndex = strValue.IndexOf('.');
//if (dotIndex == -1)
// decimal.TryParse(strValue, out result);
//else
//{
// //var intValueStr = strValue.Substring(0, dotIndex);
// var decimalValueStr = strValue.Substring(dotIndex + 1);
// var n = 1M;
// if (decimalValueStr.Length == 1)
// n = 1.0M;
// if (decimalValueStr.Length == 2)
// n = 1.00M;
// if (decimalValueStr.Length == 3)
// n = 1.000M;
// if (decimalValueStr.Length == 4)
// n = 1.0000M;
// if (decimal.TryParse(strValue, out result))
// result = decimal.Round(result * n, decimalValueStr.Length);
// else
// return DependencyProperty.UnsetValue;
//}
//return result;
3 years ago
}
}
}