我有一种方法可以使用数字并以符号格式返回数字。我在代码中使用了double,float和int,因此我编写了三种相同的方法,只是它们的摄入量变量不同。有一种方法可以仅用一种方法获得相同的效果吗?
public string NotationMethod(double x, string y)
{
if (x > 1000)
{
var exponent = Math.Floor(Math.Log10(Math.Abs(x)));
var mantissa = x / Math.Pow(10, exponent);
return mantissa.ToString("F2") + "e" + exponent;
}
return x.ToString("F0");
}
public string NotationMethod(int x, string y)
{
if (x > 1000)
{
var exponent = Math.Floor(Math.Log10(Math.Abs(x)));
var mantissa = x / Math.Pow(10, exponent);
return mantissa.ToString("F2") + "e" + exponent;
}
return x.ToString("F0");
}
public string NotationMethod(float x, string y)
{
if (x > 1000)
{
var exponent = Math.Floor(Math.Log10(Math.Abs(x)));
var mantissa = x / Math.Pow(10, exponent);
return mantissa.ToString("F2") + "e" + exponent;
}
return x.ToString("F0");
}
我注意到您在每种情况下都使用Math.Floor()
。我认为您可以简单地将方法与第一个参数Double
数据类型一起使用。您只需在调用方法时将输入转换为Double
。