業務処理では、整数を3ケタ毎のカンマで編集表示する事は必ず必要です。また、前ゼロの編集は入力された値を文字列としてのコードとして編集するのに必要です。前スペースの編集は出力処理(主に印刷)の桁あわせに必要な場合があります。
さらに、元データとしては文字列である場合も多いので、いったん整数に変換してから編集する事も多くなると思います
vb.net>str_format.exe
||
|0|
|1,000,000|
------------------------------------
0
1,000,000
------------------------------------
1,000.123
------------------------------------
||
|0|
|1,000,000|
------------------------------------
A
a
------------------------------------
|A|
|a|
------------------------------------
|0010|
------------------------------------
|0010|
------------------------------------
1,000
------------------------------------
1000000
1000000
Module MyModule
' ********************************
' 数字関係の編集処理
' ********************************
Sub Main()
' ********************************
' 整数をカンマ編集
' ********************************
Dim nData As Integer = 0
' 1) 整数そのものを ToString
' |(縦棒) は、編集文字以外なので、そのまま表示
' ※ カスタム書式では、他の文字を混在できます
Console.WriteLine( nData.ToString("|#,#|") )
Console.WriteLine( nData.ToString("|#,0|") )
nData = 1000000
Console.WriteLine( nData.ToString("|#,0|") )
Console.WriteLine( "------------------------------------" )
' 以下のようなコードでも可能です( # のような機能はありません )
' N0 の 0 は小数以下の精度です
' ※ 標準書式では、他の文字を混在できません
nData = 0
Console.WriteLine( nData.ToString("N0") )
nData = 1000000
Console.WriteLine( nData.ToString("N0") )
Console.WriteLine( "------------------------------------" )
' Decimal は、10進数を表現するオブジェクトです
' N0 の 0 は小数以下の精度です
Dim decData As Decimal = 1000.12345
Console.WriteLine( decData.ToString("N3") )
Console.WriteLine( "------------------------------------" )
' Format メソッド
Console.WriteLine( String.Format( "|{0:#,#}|", 0 ) )
Console.WriteLine( String.Format( "|{0:#,0}|", 0 ) )
Console.WriteLine( String.Format( "|{0:#,0}|", 1000000 ) )
Console.WriteLine( "------------------------------------" )
' ********************************
' 整数を16進数
' ********************************
nData = 10
' 整数そのものを ToString( 大文字と小文字 )
Console.WriteLine( nData.ToString("X") )
Console.WriteLine( nData.ToString("x") )
Console.WriteLine( "------------------------------------" )
' Format メソッド( 大文字と小文字 )
Console.WriteLine( String.Format( "|{0:X}|", 10 ) )
Console.WriteLine( String.Format( "|{0:x}|", 10 ) )
Console.WriteLine( "------------------------------------" )
' ********************************
' 整数を前ゼロコードに変換
' この場合、固定長のコードに変換できます
' ********************************
nData = 10
' 整数そのものを ToString( )
Console.WriteLine( nData.ToString("|0000|") )
Console.WriteLine( "------------------------------------" )
' Format メソッド( 大文字と小文字 )
Console.WriteLine( String.Format( "|{0:0000}|", 10 ) )
Console.WriteLine( "------------------------------------" )
' ********************************
' 整数を前スペース文字列に変換
' 全ての言語共通の方法として、必要な文字列長のスペースを
' 前につなげて右から必要な文字数の文字列を切り取ります
' " Z,ZZ9" (10ケタ) という文字列が欲しい場合
' ********************************
nData = 1000
' まず、Z,ZZ9 部分を作成
Dim str As String = nData.ToString("#,0")
' 10ケタのスペースを連結
str = " " + str
' 右から10ケタを取得
str = str.Substring( str.Length - 10 )
' 結果
Console.WriteLine( str )
Console.WriteLine( "------------------------------------" )
' ********************************
' 【補足】16進数文字列を整数に変換する : Integer.Parse
' ********************************
' A は 16進数 の 10
Console.WriteLine( Integer.Parse("A", _
System.Globalization.NumberStyles.HexNumber) * 100000 )
' ********************************
' 【補足】文字列を整数に変換する : Integer.Parse
' ********************************
Console.WriteLine( Integer.Parse("10" ) * 100000 )
End Sub
End Module
▼ C#
using System;
class MyModule {
// ********************************
//
// ********************************
static void Main() {
// ********************************
//
// ********************************
int nData = 0;
Console.WriteLine(nData.ToString("|#,#|"));
Console.WriteLine(nData.ToString("|#,0|"));
nData = 1000000;
Console.WriteLine(nData.ToString("|#,0|"));
Console.WriteLine("------------------------------------");
nData = 0;
Console.WriteLine(nData.ToString("N0"));
nData = 1000000;
Console.WriteLine(nData.ToString("N0"));
Console.WriteLine("------------------------------------");
Decimal decData = 1000.12345m;
Console.WriteLine(decData.ToString("N3"));
Console.WriteLine("------------------------------------");
Console.WriteLine(string.Format("|{0:#,#}|", 0));
Console.WriteLine(string.Format("|{0:#,0}|", 0));
Console.WriteLine(string.Format("|{0:#,0}|", 1000000));
Console.WriteLine("------------------------------------");
// ********************************
//
// ********************************
nData = 10;
Console.WriteLine(nData.ToString("X"));
Console.WriteLine(nData.ToString("x"));
Console.WriteLine("------------------------------------");
Console.WriteLine(string.Format("|{0:X}|", 10));
Console.WriteLine(string.Format("|{0:x}|", 10));
Console.WriteLine("------------------------------------");
// ********************************
//
// ********************************
nData = 10;
Console.WriteLine(nData.ToString("|0000|"));
Console.WriteLine("------------------------------------");
Console.WriteLine(string.Format("|{0:0000}|", 10));
Console.WriteLine("------------------------------------");
// ********************************
//
// ********************************
nData = 1000;
string str = nData.ToString("#,0");
str = (" " + str);
str = str.Substring((str.Length - 10));
Console.WriteLine(str);
Console.WriteLine("------------------------------------");
// ********************************
//
// ********************************
Console.WriteLine((int.Parse("A", System.Globalization.NumberStyles.HexNumber) * 100000));
// ********************************
//
// ********************************
Console.WriteLine((int.Parse("10") * 100000));
}
}