Работа с числами (оставить только два знака после запятой)

mixail77

Client
Регистрация
04.09.2013
Сообщения
7
Благодарностей
0
Баллы
1
Всем привет.

Весь вечер сижу голову ломаю над следующим.

Есть числа:

46.13894940692326
2.5000000000000004
0.10000000000000009
0
24
2.5
4.168

Нужно какое-то изящное решение (в один кубик), которое – целые числа оставляла бы целыми, а для цифр с точкой оставляла бы только число+2 цифры после точки.

Подскажите, возможно, кто-то уже решал подобную задачу?

Пробовал такой вариант, но он спотыкается на нуле/числах менее 5 символов:

Код:
string text = project.Variables["name"].Value;
text = text.Substring(0, 5);
return text;

Спасибо.

С уважением,
Михаил.
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
return (Regex.Match(1.345678.ToString(), @"\d+([.,]\d{2})?").Value);
 

mixail77

Client
Регистрация
04.09.2013
Сообщения
7
Благодарностей
0
Баллы
1
Спасибо, работает.

Корректна ли будет такая конструкция вставки переменной?

Код:
return (Regex.Match({-Variable.name-}.ToString(), @"\d+([.,]\d{2})?").Value);
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  1. return (Regex.Match(int.Parse(project.Variables["name"].Value).ToString(), @"\d+([.,]\d{2})?").Value);
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
string n = "123.4567";
return Regex.Replace(n, @"(?<=[\.,]\d{2})\d+", "");
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)