Как мне преобразовать строку "39.9983%" в "39%" в C #? - PullRequest
1 голос
/ 21 октября 2010

Я не хочу делать округления, прямо вверх, "39%".

Так что "9.99%" должно стать "9%".

Ответы [ 8 ]

6 голосов
/ 21 октября 2010

Надеюсь, это сработает.

string str = "39,999%";

string [] Output = str.Split ('.');

На выходе [0] будет ваш ответ.

Спасибо

5 голосов
/ 21 октября 2010
string myPercentage = "48.8983%";

string newString = myPercentage.Replace("%","");

int newNumber = (int)Math.Truncate(Double.Parse(newString));

Console.WriteLine(newNumber + "%");

Может быть, есть сотни способов сделать это, и это только один:)

3 голосов
/ 21 октября 2010

Вероятно, Regex. Я не мастер регулярных выражений, я обычно избегаю их, как чума, но, похоже, это работает.

string num = "39.988%";
string newNum = Regex.Replace(num, @"\.([0-9]+)%", "%");
2 голосов
/ 21 октября 2010

Теперь у нас есть два вопроса, задающих одно и то же ..

Вот мой треск на этом.

"39.9983%".Split('.')[0] + "%";
2 голосов
/ 21 октября 2010
int.Parse("39.999%".Split('.')[0])

Это дает вам хороший int, с которым вы можете работать так, как считаете нужным. Вы можете наклеить знак% на конце, с какой бы цепочкой строк ни плыла ваша лодка.

2 голосов
/ 21 октября 2010

Один из способов сделать это:

"39.999%".Split(new char[] { '.' })[0] + "%";
1 голос
/ 21 октября 2010
Console.WriteLine("{0}%", (int)39.9983);
0 голосов
/ 21 октября 2010

Полагаю, вы хотите вернуть строку?Наверное, самый ленивый способ сделать это:

    string mynum = "39.999%"
    mynum = mynum.substring(0, mynum.IndexOf('.'));
    mynum += "%";
    

Чтобы получить int, вы можете привести результат в строке 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...