1

文字列を解析して、[10.2%]. 次に、"%"シンボルを削除し、小数点を切り上げ/切り捨ての整数に変換する必要があります。だから、[10.2%]結局なるでしょう10。そして、[11.8%]最終的には12になります。

うまくいけば、私は十分な情報を提供しました。

4

5 に答える 5

2
Math.Round(
    double.Parse(
       "[11.8%]".Split(new [] {"[", "]", "%"}, 
       StringSplitOptions.RemoveEmptyEntries)[0]))
于 2013-01-06T14:46:41.090 に答える
1

正規表現を使用してみませんか?

この例では、角かっこ内の値は常に小数点付きのdoubleであると想定しています。

string WithBrackets = "[11.8%]";
string AsDouble = Regex.Match(WithBrackets, "\d{1,9}\.\d{1,9}").value;
int Out = Math.Round(Convert.ToDouble(AsDouble.replace(".", ","));
于 2013-01-06T14:45:58.117 に答える
0

正規表現(Regex)を使用して、1つの括弧内の必要な単語を検索します。必要なコードは次のとおりです。foreachループを使用して%を削除し、intに変換します。

List<int> myValues = new List<int>();
foreach(string s in Regex.Match(MYTEXT, @"\[(?<tag>[^\]]*)\]")){
   s = s.TrimEnd('%');
   myValues.Add(Math.Round(Convert.ToDouble(s)));
}
于 2013-01-06T14:46:32.703 に答える
0
var s = "[10.2%]";
var numberString = s.Split(new char[] {'[',']','%'},StringSplitOptions.RemoveEmptyEntries).First();
var number = Math.Round(Covnert.ToDouble(numberString));
于 2013-01-06T14:50:52.843 に答える
0

角かっこの間の内容が <decimal>% の形式であることを確認できる場合、この小さな関数は角かっこの最初のセットの間の値を返します。抽出する必要がある値が複数ある場合は、多少変更する必要があります。

public decimal getProp(string str)
{
    int obIndex = str.IndexOf("["); // get the index of the open bracket
    int cbIndex = str.IndexOf("]"); // get the index of the close bracket
    decimal d = decimal.Parse(str.Substring(obIndex + 1, cbIndex - obIndex - 2)); // this extracts the numerical part and converts it to a decimal (assumes a % before the ])
    return Math.Round(d); // return the number rounded to the nearest integer
}

たとえばgetProp("I like cookies [66.7%]")Decimal数値 67を指定します。

于 2013-01-06T14:51:16.417 に答える