2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

数値をフォーマット(書式設定)した場合の小数点以下表記について

Posted at

TL;DR

  • Excel、VBA(VB6)、.NETで小数点以下の表記について以下にまとめます。
  • .NETで整数を処理した場合の表記が、より自然になっています。
    • システムによって望ましい表記は異なると思いますが、.NETで書式を0.00または0.##を指定することが、ほとんどのシステムではよい選択となるのではないでしょうか。
      • .NETで小数点位置をそろえたい場合:0.00
      • .NETで小数点位置をそろる必要がない場合:0.##
    • ただし空白埋めで揃えたい場合は独自処理が必要となります。

環境

  • 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")

システムによっては、..11.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

image.png

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 同一
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?