-5

これを生成するために必要な ToString 形式は何ですか

>     5  to 00000500
>     10 to 00001000
>     15 to 00001500
>     20 to 00002000

ありがとう。

4

4 に答える 4

4

乗算を使用するのではなく、純粋にフォーマット文字列でこれを行いたい場合はToString、次のようなものを使用できます。

string yourString = yourNumber.ToString("000000'00'");
于 2012-04-05T10:56:47.540 に答える
3

やってみる

(yourNum * 100).ToString("0000000");
于 2012-04-05T10:52:16.000 に答える
2
(number * 100).ToString("D8");
于 2012-04-05T10:55:20.900 に答える
1

カスタムフォーマットプロバイダーでそれを行うことができます。提供された場合、入力は文字列です。ただし、任意のデータ型に簡単に変更できます。if (arg.GetType() == typeof(String))フォーマットしたいものに変更するだけです。

使用法:

            var five = "5";
            var ten = "10";
            var fiveteen = "15";
            var twenty = "20";

        var formatprovider = new CustomStringFormatProvider();
        var res1 = string.Format(formatprovider, "{0}", five);
        res1 = string.Format(formatprovider, "{0}", ten);
        res1 = string.Format(formatprovider, "{0}", fiveteen);
        res1 = string.Format(formatprovider, "{0}", twenty);

そして、これがフォーマットプロバイダーです

public sealed class CustomStringFormatProvider : IFormatProvider, ICustomFormatter
{
    public Object GetFormat(Type formatType)
    {
        if (formatType == typeof(ICustomFormatter)) return this;
        return Thread.CurrentThread.CurrentCulture.GetFormat(formatType);
    }
    public String Format(String format, Object arg, IFormatProvider formatProvider)
    {
        String s;

        IFormattable formattable = arg as IFormattable;

        if (formattable == null) s = arg.ToString();
        else s = formattable.ToString(format, formatProvider);

        if (arg.GetType() == typeof(String))
            return String.Join("",Enumerable.Repeat("0", 4).ToArray()) + s + String.Join("",Enumerable.Repeat("0", 4 - s.Length).ToArray());
        return s;
    }
}
于 2012-04-05T11:20:23.393 に答える