#author("2020-01-02T21:19:40+09:00","","")
#author("2020-01-02T21:20:37+09:00","","")
#navi(../)
* 数値を指定した桁数分ゼロで埋めたい [#r599341c]
int(Int32, Integer), decimal(Decimal)のToStringメソッドを使ったゼロパディングのサンプルコードを以下に紹介します。

#htmlinsert(windev-top.html)
#contents

* 関連サイト [#h7713b93]
-[[Microsoft | .NET Int32.ToString メソッド>https://docs.microsoft.com/ja-jp/dotnet/api/system.int32.tostring?view=netframework-4.8#System_Int32_ToString_System_String_]]

* 関連記事 [#r62691b5]
-[[文字列数値を指定した桁数分ゼロで埋めたい・PadLeft>.NET/文字列数値を指定した桁数分ゼロで埋めたい・PadLeft]]


* 動作確認環境 [#lc461e78]
- Windows 10 ver.1909
- Visual Studio 2019
- .NET Core
- コンソールアプリケーション

* ToStringを使った整形 [#c9981856]
使用するメソッドは数値型のToString(string format)を使って整形します。~
System.Int32のToString(string format)は以下のようになっています。(MSサイトからの抜粋)
-指定した書式を使用して、このインスタンスの数値を、それと等価な文字列形式に変換します。~
 public string ToString (string format);
-パラメーター~
 format String 標準またはカスタムの数値書式指定文字列。

* ToString(string format)のサンプルコード [#t36e8bf0]
以下に ToString(string format)を使った C#, Visual Basic(VB)のサンプルコードを紹介します。~
decimal, int, uint (Decimal, Integer, UInteger)を対象にToString(string format)メソッドを使ってみます。~
尚、サンプルコードでは数値を5桁ゼロパディングします。~
5桁のゼロパディングしたい場合は、0を5つ続けるか、D5のようにDの後に値を設定します。~
decimalでは、D数値のフォーマット指定は例外が発生しました。~
formatについては、以下のインクを参照ください。
-[[Microsoft | .NET 標準の数値形式文字列>https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/standard-numeric-format-strings?view=netframework-4.8]]


** C# [#z2c805ed]

 using System;
 
 class Program
 {
     static void Main(string[] args)
     {
         decimal pd = 123;
         decimal md = -234;
         int i = -345;
         uint ui = 456;
 
         Console.WriteLine("decimal");
         Console.WriteLine("{0} : {1}",pd, pd.ToString("00000"));
         Console.WriteLine("{0} : {1}", md, md.ToString("00000"));
         Console.WriteLine("int, uint");
         Console.WriteLine("{0} : {1}", i, i.ToString("00000"));
         Console.WriteLine("{0} : {1}", i, i.ToString("D5"));
         Console.WriteLine("{0} : {1}", ui, ui.ToString("00000"));
         Console.WriteLine("{0} : {1}", ui, ui.ToString("D5"));
     }
 }

-実行結果
***実行結果 [#ubde3da3]
#ref(01.png)

** Visual Basic(VB) [#a85d2eb1]

 Imports System
 
 Module Program
     Sub Main(args As String())
 
         Dim pd As Decimal = 123
         Dim md As Decimal = -234
         Dim i As Integer = -345
         Dim ui As UInteger = 456
 
         Console.WriteLine("Decimal")
         Console.WriteLine("{0} : {1}", pd, pd.ToString("00000"))
         Console.WriteLine("{0} : {1}", md, md.ToString("00000"))
         Console.WriteLine("Integer, UInteger")
         Console.WriteLine("{0} : {1}", i, i.ToString("00000"))
         Console.WriteLine("{0} : {1}", i, i.ToString("D5"))
         Console.WriteLine("{0} : {1}", ui, ui.ToString("00000"))
         Console.WriteLine("{0} : {1}", ui, ui.ToString("D5"))
     End Sub
 End Module

-実行結果
***実行結果 [#q1585672]
#ref(02.png)

以上、System.Int32.ToString(string format), System.Decimal.ToString(format)を使ったゼロパディングのサンプルコードでした。

#htmlinsert(windev-btm.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS