Hi nauna,
Check this example. Now please take its reference and correct your code.
HTML
<asp:TextBox runat="server" ID="txtPercentage" AutoPostBack="true" OnTextChanged="ConvertToFraction" /> %
Code
protected void ConvertToFraction(object sender, EventArgs e)
{
if (IsDouble(txtPercentage.Text.Trim()))
{
double percentage = Convert.ToDouble(txtPercentage.Text);
double convertToDecimal = percentage / 100;
Fraction fraction = DoubleToFraction(convertToDecimal);
string message = "Fraction of " + percentage.ToString() + " is " + fraction.N + "/" + fraction.D;
ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('" + message + "');", true);
}
}
public bool IsDouble(string text)
{
double number;
return double.TryParse(text, out number);
}
public Fraction DoubleToFraction(double value)
{
double accuracy = 0.1;
if (accuracy <= 0.0 || accuracy >= 1.0)
{
throw new ArgumentOutOfRangeException("accuracy", "Must be > 0 and < 1.");
}
int sign = Math.Sign(value);
if (sign == -1)
{
value = Math.Abs(value);
}
// Accuracy is the maximum relative error; convert to absolute maxError
double maxError = sign == 0 ? accuracy : value * accuracy;
int n = (int)Math.Floor(value);
value -= n;
if (value < maxError)
{
return new Fraction(sign * n, 1);
}
if (1 - maxError < value)
{
return new Fraction(sign * (n + 1), 1);
}
// The lower fraction is 0/1
int lower_n = 0;
int lower_d = 1;
// The upper fraction is 1/1
int upper_n = 1;
int upper_d = 1;
while (true)
{
// The middle fraction is (lower_n + upper_n) / (lower_d + upper_d)
int middle_n = lower_n + upper_n;
int middle_d = lower_d + upper_d;
if (middle_d * (value + maxError) < middle_n)
{
// real + error < middle : middle is our new upper
upper_n = middle_n;
upper_d = middle_d;
}
else if (middle_n < (value - maxError) * middle_d)
{
// middle < real - error : middle is our new lower
lower_n = middle_n;
lower_d = middle_d;
}
else
{
// Middle is our best fraction
return new Fraction((n * middle_d + middle_n) * sign, middle_d);
}
}
}
public class Fraction
{
public Fraction(int n, int d)
{
N = n;
D = d;
}
public int N { get; set; }
public int D { get; set; }
}
Screenshot