2009-05-27 21 views
19

もし誰かがC#の小数点と小数点の違いを説明できるのであれば、それは素晴らしいでしょう。小数点と小数点の相違点

より一般的なやり方では、decimal、int、string、大文字のクラスDecimal、Int32、Stringのような小文字の構造体の違いは何ですか?

大文字のクラスも(Decimal.Divide()のような)関数をラップする唯一の違いはありますか?

答えて

39

これらは同じです。 decimal型はSystem.Decimalのエイリアスです。

したがって、基本的に10進数はDecimalと同じです。これはユーザの好みに応じて使い分けますが、int型とstring型の方が使いやすく、C++プログラマの方が親しみやすいので、最も使いやすいものです。

+1

それらがまったく同じ場合、なぜそれらの両方を持っていますか?なぜ彼らの1人だけではないのですか? –

+0

decimalは、.NETタイプSystem.DecimalのC#固有のバージョンです。これは、唯一のエイリアスです。 – Nate

+0

素晴らしい!みんなありがとう! –

0

decimal、int、stringは、物事を簡単にするためにすべて簡略表記です。フレームワークは本当に "小数"が何であるかは分かりませんが、System.Decimalを知っていますので、コードをコンパイルするとDecimalはSystem.Decimalに変わります。エイリアスが使用されているコードを見てみると、ほとんどのプログラマーはよりコンパクトなエイリアスを好み、読みやすいように感じるでしょう。私はまた、C/C++への移行がより簡単になるようにすることができると考えています。

1

built-in C# typesはすべて構造体*ではありません。これらは、システム名前空間の定義済みタイプのエイリアスです。彼らは文字通りすべての点で同じです。except formatting。エイリアスタイプは小文字で、キーワード(濃い青色)のように書式設定されています。システムタイプはパスカルケースであり、タイプ(ライトブルー)のようにフォーマットされています。


* objectstring C#は.NET言語であるため、すべての種類は、.NET Frameworkの型にマップする必要がありますクラス

+0

組み込みのC#型(int、doubleなど)_are_構造体。 –

+0

ありがとうエリック、私はそれのために私の脳を家に残しました。 –

2

です。

最初の質問に答えるために、decimalはSystem.Decimal .NET Frameworkタイプのエイリアスです。それらは互換的に使用することができます。

2番目の質問に答えるには、DecimalとDecimalの両方が、作成された変数と値型自体の「構造」の両方を含む同じ関数を拡張する必要があります。

decimal FirstDec = 12; 
Decimal SecondDec = 13; 
decimal ThirdDec = decimal.Ceiling(FirstDec, SecondDec); 
Decimal FourthDec = Decimal.Floor(ThirdDec); 
bool isEqual = FirstDec.Equals(SecondDec) && FourthDec.Equals(ThirdDec); 

MSDN Page for Built-In Typesは、各エイリアスがにマップされSystem.ValueTypeを紹介します。 Decimaldecimalの場合は、具体的にはMSDN Page for Decimalを参照できます。

関連する問題