As long as you're not in danger of conversion errors with high precision numbers, you could use the numbers IConvertible implementation to get a generic approach. It looks cleaner than implementing a lot if and elses, although the former would probably be more efficient on micro level.
public T getval()
{
if(_no is IConvertible) //could also be put in the generic constraint for <T>
{
//use decimal for the largest precision,
var dec = Convert.ToDecimal(_no); //will throw an exception if not numeric
if (dec < 0)
{
return (T)Convert.ChangeType(-dec, typeof(T));
}
}
return _no;
}