カスタム フォーマット文字列でできることを超えていると思われる状況に遭遇しました。
しかし、私が書いたコードは非常にひどいので、とにかく尋ねようと思いました。
私が必要とするのは、次のように、10 進数を 6 桁または 7 桁の文字列として表示することです。
number = 12345.67M
(optional)
tenthousands thousands hundreds tens ones tenths hundredths
1 2 3 4 5 6 7
これを達成するために私が書いたコードは次のとおりです。
public static string ConvertDecimalToString(decimal easting, int length)
{
var formatString = "{0:0000.00}";
var numberAsString = string.Format(formatString, easting);
var removePeriod = numberAsString.Replace(".", "");
if (removePeriod.Length > length)
{
return removePeriod.Substring(removePeriod.Length - length, length);
}
else
{
return removePeriod.PadLeft(length, '0');
}
}
期待される入力と出力:
Input Output(6) Output(7)
912345.67M 234567 1234567
12345.67M 234567 1234567
1234.56M 123456 0123456
1234.5M 123450 0123450
1234M 123400 0123400
234M 023400 0023400