theskiguy Ответов: 1

Vb.net как использовать tostring для форматирования целого числа только с конечным десятичным числом


Я пытаюсь использовать метод ToString для форматирования числа. Число может быть целым числом или десятичным числом.

Когда число является целым числом, я хочу, чтобы оно включало только конечную десятичную точку и ничего после нее. Если число не является целым числом, то я хочу отформатировать его до 4 начальных и 4 конечных цифр.

Например:

20 -> 20.
10 -> 10.

10.25114 -&ГТ; 10.2511
100.156 -&ГТ; 100.156

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

Я использую следующее:

Dim Output as String
Dim Input as decimal = 20

Output = Input.ToString("####.####")


Это, однако, все еще оставляет меня только с 20 и без конечной десятичной точки.


Если я изменю первую конечную цифру в формате на ноль то она вернет 20.0

Output = Input.ToString("####.0###")


Я знаю, что могу просто снять единственный трейлинг-ноль после выполнения вышеуказанного формата, однако я пытаюсь сделать все это только с помощью метода ToString. Возможно это или нет?

ZurdoDev

Я никогда не видел формата, который оставляет десятичную точку без ничего после нее, поэтому я предполагаю, что вам придется написать свой собственный метод или функцию.

1 Ответов

Рейтинг:
4

OriginalGriff

Не существует стандартного метода форматирования "конечной десятичной точки" без какой - либо цифры после нее, но самый простой способ сделать это-просто отформатировать ее с нулем и использовать Trim для удаления начальных и конечных нулей:

Output = Input.ToString("####.0###").Trim("0")


theskiguy

Это похоже на то, что я думал, что мне придется сделать. Мне очень нравится ваше решение, так как это хороший способ сделать это в одной строке. Спасибо,

OriginalGriff

Всегда пожалуйста!