У меня есть требование отформатировать всю мою строку в формате ##. ### / ##. ### Пример: если входное значение 3/4, мне нужно отформатировать его до 03.000 / 04.000 Если мое входное значение равно 1,4 /2.0, то мне нужно отформатировать его до 01.400 / 02.000. Я пробовал следующее, которое дает ожидаемый результат. Может ли кто-нибудь подсказать, есть ли какая-либо прямая функция или лучший способ сделать это.
using System;
class Test {
// Main Method
static void Main(string[] args)
{
String input = "23.3/4.0";
String[] splittedValue = input.Split("https://codereview.stackexchange.com/");
Decimal numerator=Convert.ToDecimal(splittedValue[0]);
Decimal denominator=Convert.ToDecimal(splittedValue[1]);
String format = "00.000";
String test1 = numerator.ToString(format);
String test2 = denominator.ToString(format);
}
}
1 ответ
Один из способов быть более кратким — разделить строку на "https://codereview.stackexchange.com/"
и '.'
и восстановите 2 струны с заполнением. Это устраняет 2 преобразования и дает требуемый формат:
static void Main(string[] args)
{
var input = "23.3/4.0";
var splittedValue = input.Split( "https://codereview.stackexchange.com/", '.' );
var num = FormatFracParts( splittedValue[0], splittedValue[1] );
var den = FormatFracParts( splittedValue[2], splittedValue[3] );
}
private static string FormatFracParts(params string[] parts)
{
if(parts.Length != 2)
{
throw new ArgumentException( @"'parts' must have exactly 2 elements." );
}
return $"{parts[0].PadLeft(2, '0')}.{parts[1].PadRight(3, '0')}";
}