void Main() {
Console.WriteLine(IsPositive(-3.7));
Console.WriteLine(IsPositive(42));
Console.WriteLine(IsPositive(0.0));
//-------
string ds = "36";
double dv = ToPositiveDouble(ds, 42.0);
Console.WriteLine($"{ds} : =>{dv}");
//-------
ds = "-36";
dv = ToPositiveDouble(ds, 42.0);
Console.WriteLine($"{ds} : =>{dv}");
//-------
ds = "";
dv = ToPositiveDouble(ds, 42.0);
Console.WriteLine($"{ds} : =>{dv}");
//-------
ds = "0";
dv = ToPositiveDouble(ds, 42.0);
Console.WriteLine($"{ds} : =>{dv}");
}
public static double ToPositiveDouble(string input, double def = 1) {
double dv;
return (Double.TryParse(input, out dv) && IsPositive(dv)) ? dv : def;
}
public static bool IsPositive<T>(T value)
where T : struct, IComparable<T> {
return value.CompareTo(default(T)) > 0;
}
public static bool IsNegative<T>(T value)
where T : struct, IComparable<T> {
return value.CompareTo(default(T)) < 0;
}