概要
- 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) | 結果(.NET) | VBAとの相違 |
|---|---|---|---|---|
| 0 | 0.00 | 0.00 | 0.00 | ✅同一 |
| 0.00 | 0.00 | 0.00 | 0.00 | ✅同一 |
| 0.1 | 0.00 | 0.10 | 0.10 | ✅同一 |
| 1 | 0.00 | 1.00 | 1.00 | ✅同一 |
| 1.00 | 0.00 | 1.00 | 1.00 | ✅同一 |
| 1.1 | 0.00 | 1.10 | 1.10 | ✅同一 |
| 0 | #.## | . | ※長さ0の文字列 | ⚡相違あり |
| 0.00 | #.## | . | ※長さ0の文字列 | ⚡相違あり |
| 0.1 | #.## | .1 | .1 | ✅同一 |
| 1 | #.## | 1. | 1 | ⚡相違あり |
| 1.00 | #.## | 1. | 1 | ⚡相違あり |
| 1.1 | #.## | 1.1 | 1.1 | ✅同一 |
| 0 | 0.## | 0. | 0 | ⚡相違あり |
| 0.00 | 0.## | 0. | 0 | ⚡相違あり |
| 0.1 | 0.## | 0.1 | 0.1 | ✅同一 |
| 1 | 0.## | 1. | 1 | ⚡相違あり |
| 1.00 | 0.## | 1. | 1 | ⚡相違あり |
| 1.1 | 0.## | 1.1 | 1.1 | ✅同一 |
