現在、私はWinforms(C#)を使用したRPN電卓で作業しています。私はラベルに "1/2"のような分数を保存することができます。だから、私のラベルにいくつかの分数が含まれている場合、それらを最初に10進数に変換して、それらをスタックに入れます。あなたが私の方法を私がそれをやりたいと思う方法の下に見つけることができます。しかし、私のラベルに "1/2"や "6/3"というラベルがあると、両方の値が "0.5"と "2"ではなく "2"と "2"になります。C#:Regex変換後の正規表現の置換
これを解決する方法はありますか?
事前に感謝します!
private void SearchforFrac()
{
string pattern = @"(\d+)(/)(\d+)";
decimal new1 = 0;
int numerator = 0;
int denominator = 1;
foreach (Match match in Regex.Matches(labelCurrentOperation.Text, pattern, RegexOptions.IgnoreCase))
{
numerator = int.Parse(match.Groups[1].Value);
denominator = int.Parse(match.Groups[3].Value);
}
new1 = (decimal)numerator/(decimal)denominator;
String res = Convert.ToString(new1);
Regex rgx = new Regex(pattern);
labelCurrentOperation.Text = rgx.Replace(labelCurrentOperation.Text, res);
}
あなたは 'foreach'ループ内でより多くを行う必要があります。分子と分母を設定しただけでループの後に、それらの両方の最後の値(つまり6/3 = 2)が得られます。 –
私は、ありがとう! –