blueye89 Ответов: 2

Как удалить десятичную точку из двойного значения


Всем привет,
У меня есть цифры в таком формате, как:

15.2564
4.5268
235.9985
0.5656
78.3211

То, что я хотел бы получить, это:

0152564
0045268
2359985
0005656
0783211

Как лучше всего удалить десятичную точку из двойных значений и добавить:
1.никаких нулей перед значением, если значение имеет три числа перед десятичной точкой (пример 235.9985 будет 2359985)
2.один ноль перед значением, если значение имеет два числа перед десятичной точкой (пример 15.2564 будет 0152564)
3. два нуля перед значением, если значение имеет одно число перед десятичной точкой (пример 4.5268 будет 0045268)

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

В то же время я ищу аналогичный пример.
Я нашел решение для второй части, связанной с форматом.
Dim dblValue As Double = 15.2564
Dim fmt As String = "000.####"
Console.WriteLine(dblValue.ToString(fmt))

F-ES Sitecore

Пахнет домашним заданием, но вам лучше преобразовать свои числа в строки и сделать это с помощью манипуляций со строками, это будет намного проще, чем делать это численно. Посмотрите на такие функции, как IndexOf и Replace, они дадут вам то, что вам нужно.

2 Ответов

Рейтинг:
14

manu_dhobale

Попробовать это

decimal decNum = 0.5656M;
var strArr = decNum.ToString().Split('.').ToArray();
string finalString = strArr[0].PadLeft(3, '0') + strArr[1];


blueye89

Преобразовано в VB код:
Dim decNum As Decimal = 0,5656 D
Dim strArr = decNum.Метод toString().Сплит("."С).Метод toArray()
Dim finalString As String = strArr(0). PadLeft(3, "0" C) + strArr(1)

Большое спасибо!

Richard Deeming

То Split функция уже возвращает массив, поэтому нет необходимости вызывать ToArray о возвращаемом значении. :)

Вы также захотите проверить Length массива, если число является целым числом.

blueye89

Да, я хотел бы также проверить длину массива, если число является целым. Например, если фиксированная длина равна 6 цифрам и у меня есть массив, длина которого равна 5, то я хотел бы добавить один "0" в конце строки, чтобы заполнить длину 6 цифр. Есть идеи?

Рейтинг:
0

Patrice T

попробуйте умножить на 10000, чтобы удалить десятичную точку.