2017-02-20 7 views
1

Я хотел бы получить подстроку с начала строки до (и в том числе) одного символа ПОСЛЕ периода.Как получить подстроку от начала до одного символа после определенного символа?

Пример:

convertedTempLabel.Text = TemperatureConversion(decimal.Parse(tempTextBox.Text), 
      fromTemperature, 
      toTemperature).ToString(); 

Это возвращает строковое значение температуры. Проблема в том, что он возвращает много десятичных значений после периода. Мне нужен только первый символ после периода. Поэтому, если он возвращает 67.8933333, я хочу получить подстроку 67.8

Я могу добавить .substring(0,4), но если значение возвращает три цифры до периода, оно не будет содержать цифру после периода. Я в основном хочу получить подстроку, основанную на точке массива И значении символа.

Спасибо.

+0

Что такое TemperatureConversion? –

+0

TemperatureConversion возвращает десятичное значение. – OverflowingJava

ответ

4

Если ваш метод TemperatureConversion возвращает десятичное, то вы должны просто предоставить цифровой формат строки с требуемым количеством знаков после запятой вы хотите получить:

.ToString("0.0") 

Или

.ToString("N1") 

Дальнейшее чтение Custom Numeric Format Strings и Standard Numeric Format Strings

+1

Это сработало, спасибо! – OverflowingJava

0

Вы можете объявить новую строку и перебрать старую строку, пока не найдете период, y ou добавит его и число после него только и выйдет из цикла.

2

Вы можете использовать строку форматирования для номера:

var dec = new decimal(123.123456); 
dec.ToString("0.#"); // will output 123.1 or 123 if there is no decimal value 
dec.ToString("0.0"); // will output 123.1 or 123.0 if there is no decimal value 
+0

Мне нравится «0. #» дополнение к ответу выше, это заставляет его выглядеть аккуратно. Благодаря! – OverflowingJava

0

Используйте это, если вы хотите, чтобы ваш выход с одного знака после запятой без округления его:

string.Format("{0:0.0}", Math.Truncate(yourdoublevalue * 10)/10); 
Смежные вопросы