Goran Bibic Ответов: 4

Преобразование значения текстового поля C#


Преобразование значения из текстового поля 1.000
Это значение один (1) с тремя десятичными знаками

Нужно преобразовать в число без десятичных знаков

Что я уже пробовал:

Нужно преобразовать в число без десятичных знаков

Maciej Los

???
Что вы пробовали до сих пор?

Goran Bibic

У меня есть значение в текстовом поле 1.000 нужно иметь на печати значение 1

Maciej Los

Вопрос не в том, что у вас есть, а в том, что вы пробовали.

Richard MacCutchan

Ваш вопрос далек от ясности. Пожалуйста, объясните, что именно вы пытаетесь сделать.

Goran Bibic

 pdfDoc.Add(new ListItem("   Quantity: " + ArtikliKolicinaTextBox.Text), calibri10bold));


Результат-1.0000

Должен быть результат 1

PIEBALDconsult

"Это значение один (1) с тремя десятичными знаками" - нет, вы должны понять, что это не так.
"Нужно преобразовать в число без десятичных знаков" - нет, вы должны понимать, что никакие числа не имеют "десятичных знаков".

Dave Kreskowiak

То, что вы получаете из текстового поля, - это не число. Это строка, которая выглядит как число. Вы должны преобразовать эту строку в фактическое число, прежде чем вы сможете думать о отображении его в другом формате, но это, конечно, означает, что вы должны определить, какой тип этого числа должен быть, например integer, double, single, ...

4 Ответов

Рейтинг:
8

Siddharth11041996

Вы можете сделать это двумя способами

1) с помощью math.round

n = 7.245;
a = System.Math.Round (n, 2, MidpointRounding.ToEven);       // 7.24


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


1) с помощью функции Convert.ToInt32

decimal value = 7.24m;
int n = Convert.ToInt32(value);                            // 7


Рейтинг:
21

BillWoodruff

Вам нужны только цифры 0~9: Не позволяйте пользователю вводить что-либо еще:// предположим, что вы хотите разрешить знак минус и backspace:

private string legalChars = "-\b";

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    char c = e.KeyChar;

    e.Handled = !
    (
        char.IsDigit(c)
        || legalChars.Contains(c)
    );
}
Слева для вас код: разрешить вводить только один знак минус в качестве первого символа дополнительно: ручка вырезать и вставить.


Рейтинг:
0

OriginalGriff

Во-первых, преобразуйте запись текстового поля в число с помощью TryParse:

double result;
if (!double.TryParse(ArtikliKolicinaTextBox.Text, out result))
   {
   ... report problem to the user - bad number entry ...
   return;
   }

Затем вы можете вывести его без каких-либо десятичных знаков либо с помощью метода Round, либо (проще) приведя его к целому числу:
pdfDoc.Add(new ListItem($"   Quantity: {(int) result}"), calibri10bold));


Рейтинг:
0

Maciej Los

Я бы посоветовал вам прочитать это:
Строки стандартного числового формата | Microsoft Docs[^]
Пользовательский числовой формат строк | Майкрософт документы[^]

Другими словами, если вы хотите напечатать число в определенном формате, вам нужно использовать форматирование строк. Например:

double d = 123.123;
CultureInfo ci = new CultureInfo("en-us");
Console.WriteLine(d.ToString("F0", ci));
//result: 123