2016-07-05 15 views
19
アポストロフィとあなたのコード内で読みやすくするために数字を分離することができますC++では

分離桁

int num = 1'000'000; 

をRubyでは、あなたはアンダースコアを使用することができます。

num = 1_000_000 

がありますC#のための同様の構文?私はいくつかの異なる検索を試みましたが、特定の形式で数字を出力または読み込むための結果が出てきました。

+3

私はかなり確信してアンダースコアコンセプトですC#6では部分的に実装されていると見なされましたが、リリースされませんでした。 – Jonesopolis

+0

私はそれが醜いことを知っていますが、 'int num = 1000000; // 1,000,000 'はトリックを行うことができますし、 'int num = 1000000; //あなたの正確な例は百万円です。 – MonkeyZeus

+1

私はC#の人ではありませんが、コードの中で些細ではない数値リテラルに対して一般的な嫌悪感を持っています。ファイルの先頭に 'const int ONE_MILLION = 1000000;' –

答えて

28

この回答が書かれている時点では、その機能はC#には存在しません。しかし、それにはfeature requestがあり、C#7の一部であるように見えます。これは次のバージョンです。

フィーチャーリクエストはC# 7 list of featuresに記載されていますが、100%とみなしてはなりません。状況は変更される可能性があります。一方

+1

これはC#7のVisual Studio 2017に実装されているようです。あなたは 'int million = 1_000_000;'を実行することができます – Shaun

1

、あなたはまだこれを行うことができます。

int num = Int32.Parse("1,000,000", NumberStyles.AllowThousands); 
+3

これはC++やRubyのバージョンとは非常に異なることを意味します。なぜその時点でコメントを使用しないのですか? 'int num = 1000000 // 1,000,000' –

+5

@AssortedTrailmixその後、コメントとコードの同期が外れることはありません。 –

+3

誰かがいつか現在のカルチャーを変更し、プログラム内の解析された数字がすべて同じではありません!このように数を本当に解析したい場合は、 'CultureInfo.InvariantCulture'を3番目のパラメータとして追加する必要があります。これは、一度でも忘れてしまった場合、あなたを傷つけることになるからです! – Shautieh

0

をこれがint型で助けにはなりませんが、小数であなたが使用することができます。

decimal num1 = 1E06M; // 1000000 
decimal num2 = 1.23e06m; // 1230000