0
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 1 year has passed since last update.

Decimalの小数の表示

Last updated at Posted at 2023-10-06

Decimalの仕様

範囲

79,228,162,514,264,337,593,543,950,335
から
-79,228,162,514,264,337,593,543,950,335
まで。

最大桁数

28から29桁の数字

小数について

小数

.NETのDecimalは、整数部1桁の表示は必要と思われます。そのため、小数は、小数第28位まで表示できるようです。

カスタム数値形式文字列

  • 整数部は3桁ごとに「,」で区切る。
  • 小数部は省略せず数字がある桁は全て表示する。ただし、小数部の数字は0で終わらない。

このように表示できる、カスタム数値形式文字列は、次です。

{0:#,0.############################}

整数部は、#,0で、3桁ごとに「,」で区切り表示します。
小数部は、「.」以下に「#」が28個あります。
これにより、次のように、整数部最小1桁・小数部最大28桁、あわせて最大29桁の数字を表示できます。

0.1234567890123456789012345678

コード

//整数部1桁、小数第4位までの数値
Console.WriteLine(0.1000); //doubleの場合
Console.WriteLine(0.1000m);
Console.WriteLine(0.1000m.ToString("#,0.############################"));
Console.WriteLine(0.1000m.ToString("#,#.############################"));
//0.1
//0.1000
//0.1
//.1


//整数部1桁、小数第28位までの数値
Console.WriteLine(0.1234567890123456789012345678m);
Console.WriteLine(0.1234567890123456789012345678m.ToString("#,0.############################"));
Console.WriteLine(0.1234567890123456789012345678m.ToString("#,#.############################"));
//0.1234567890123456789012345678
//0.1234567890123456789012345678
//.1234567890123456789012345678


//整数部1桁、小数第29位までの数値
Console.WriteLine(0.12345678901234567890123456789m);
Console.WriteLine(0.12345678901234567890123456789m.ToString("#,0.############################"));
Console.WriteLine(0.12345678901234567890123456789m.ToString("#,#.############################"));
//小数第29位の「9」が四捨五入されて、小数第28位の「8」が「9」になります。
//0.1234567890123456789012345679
//0.1234567890123456789012345679
//.1234567890123456789012345679


Console.WriteLine(0.1234m);
Console.WriteLine(0.1234m.ToString("#,0.############################"));
Console.WriteLine(0.1234m.ToString("#,#.############################"));
//0.1234
//0.1234
//.1234


Console.WriteLine(1234.5678m);
Console.WriteLine(1234.5678m.ToString("#,0.############################"));
Console.WriteLine(1234.5678m.ToString("#,#.############################"));
//1234.5678
//1,234.5678
//1,234.5678


//整数部9桁、小数第21位までの数値
Console.WriteLine(123456789.012345678901234567899m);
Console.WriteLine(123456789.012345678901234567899m.ToString("#,0.############################"));
Console.WriteLine(123456789.012345678901234567899m.ToString("#,#.############################"));
//小数第21位の「9」が四捨五入されて、小数第20位の「9」が「10」となり一桁繰り上がり、小数第19位の「8」が「9」になります。
//123456789.01234567890123456790   //小数部が0で終わる
//123,456,789.0123456789012345679   //小数部は0で終わらない
//123,456,789.0123456789012345679



//整数部28桁、小数第4位までの数値
Console.WriteLine(1234567890123456790123456790.1234m);
Console.WriteLine(1234567890123456790123456790.1234m.ToString("#,0.############################"));
Console.WriteLine(1234567890123456790123456790.1234m.ToString("#,#.############################"));
//小数第1位まで表示されます。
//1234567890123456790123456790.1
//1,234,567,890,123,456,790,123,456,790.1
//1,234,567,890,123,456,790,123,456,790.1

参考

0
0
1

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
0
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?