TL;DR
- Excel、VBA(VB6)、.NETで小数点以下の表記について以下にまとめます。
- .NETで整数を処理した場合の表記が、より自然になっています。
- システムによって望ましい表記は異なると思いますが、.NETで書式を
0.00
または0.##
を指定することが、ほとんどのシステムではよい選択となるのではないでしょうか。- .NETで小数点位置をそろえたい場合:
0.00
- .NETで小数点位置をそろる必要がない場合:
0.##
- .NETで小数点位置をそろえたい場合:
- ただし空白埋めで揃えたい場合は独自処理が必要となります。
- システムによって望ましい表記は異なると思いますが、.NETで書式を
環境
- Excel 16.0.13127.20266 32ビット(Office 365)
- Visual Studio 2019 16.7.4
- .NET Framework 4.7.2
テストデータ
テストデータ | 書式 |
---|---|
0 | 0.00 |
0.00 | 0.00 |
0.1 | 0.00 |
1 | 0.00 |
1.00 | 0.00 |
1.1 | 0.00 |
0 | #.## |
0.00 | #.## |
0.1 | #.## |
1 | #.## |
1.00 | #.## |
1.1 | #.## |
0 | 0.## |
0.00 | 0.## |
0.1 | 0.## |
1 | 0.## |
1.00 | 0.## |
1.1 | 0.## |
VBA(VB6)
Format(1,"0.00")
システムによっては、.
、.1
、1.
、0.
などの表記に違和感があり問題となる場合もあると思います。
テストデータ | 書式 | 結果 |
---|---|---|
0 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 |
0.1 | 0.00 | 0.10 |
1 | 0.00 | 1.00 |
1.00 | 0.00 | 1.00 |
1.1 | 0.00 | 1.10 |
0 | #.## | . |
0.00 | #.## | . |
0.1 | #.## | .1 |
1 | #.## | 1. |
1.00 | #.## | 1. |
1.1 | #.## | 1.1 |
0 | 0.## | 0. |
0.00 | 0.## | 0. |
0.1 | 0.## | 0.1 |
1 | 0.## | 1. |
1.00 | 0.## | 1. |
1.1 | 0.## | 1.1 |
Excel
VBAと同一の結果となりました。
.NET
String.Format("{0:0.00}", CDec("1"))
書式として0.##
または#.##
を指定時に小数部が存在しなかった、または0の場合の結果が異なっています。
システムによって理想の表記は異なると思いますが、.NETで整数を処理した場合の表記がより自然になっています。
テストデータ | 書式 | 結果 | VBAとの相違 |
---|---|---|---|
0 | 0.00 | 0.00 | 同一 |
0.00 | 0.00 | 0.00 | 同一 |
0.1 | 0.00 | 0.10 | 同一 |
1 | 0.00 | 1.00 | 同一 |
1.00 | 0.00 | 1.00 | 同一 |
1.1 | 0.00 | 1.10 | 同一 |
0 | #.## | ※長さ0の文字列 | 相違あり |
0.00 | #.## | ※長さ0の文字列 | 相違あり |
0.1 | #.## | .1 | 同一 |
1 | #.## | 1 | 相違あり |
1.00 | #.## | 1 | 相違あり |
1.1 | #.## | 1.1 | 同一 |
0 | 0.## | 0 | 相違あり |
0.00 | 0.## | 0 | 相違あり |
0.1 | 0.## | 0.1 | 同一 |
1 | 0.## | 1 | 相違あり |
1.00 | 0.## | 1 | 相違あり |
1.1 | 0.## | 1.1 | 同一 |