//เช่น Ex 90.5 => 00000000000009050
//เช่น Ex 90 => 00000000000009000
string ret = FomatDigit("90.5", 17, 2)
ผลลัพท์ของ ret -> 00000000000009050
โค้ด: เลือกทั้งหมด
public string FomatDigit(string input, int scale, int precision)
{
StringBuilder sb = new StringBuilder();
decimal val = Convert.ToDecimal(input);
if (precision > 0)
{
//เช่น Ex 90.00 => 00000000000009000
if (val.ToString().IndexOf('.') > -1)
{
//ถ้าจุดทศนิยมไม่ครบ 2 ตำแหน่งเช่น 5400.6 ก็ padright 0 เพิ่มเข้าไปให้ครบเป็น 5400.60
string[] decimalPoint = input.Split('.').ToArray();
decimalPoint[1] = decimalPoint[1].PadRight(precision, '0');
//แสดงว่ามีจุดทศนิยม ก็ remove . ออกไป
sb.Append((System.Text.RegularExpressions.Regex.Replace(decimalPoint[0] + "." + decimalPoint[1], @"\.", "")).PadLeft(scale, '0'));
}
else
{
sb.Append(val.ToString().PadLeft(scale - precision, '0') + "00");
}
}
else
{
sb.Append(val.ToString().PadLeft(scale, '0'));
}
return sb.ToString();
}