2016-04-26 5 views
3

NumberFormatInfoクラスには、通貨に関連するいくつかのプロパティが含まれています。 CurrencySymbol。つまり、標準書式文字列を使用して通貨としてオブジェクトを簡単に書式設定して表示することができます。解析もサポートされています。なぜ通貨で、他のユニットもNumberFormatInfoに含まれていません。

私の質問は、通貨は箱の外でサポートされていますが、他の測定単位ではサポートされないのはなぜですか?長さ、質量、時間などで同じことをしたいと思います。

この機能を自分で追加するのは簡単でしょうか?そのオブジェクトの現在の測定単位が何であるかを知る必要があるので、いくつかの構造体/クラスがもちろん要求されるでしょう。

+0

https://msdn.microsoft.com/en-us/library/bb762932(v=vs.110).aspx –

+0

ありがとうございました。私はこれを使っていくつかのテストをしましたが、私はこれに基づいて素晴らしい解決策を作ることはできないと思います。数字と単位を文字列に変換するには、両方の情報がありますが、ユーザー入力を解析してMicrosoftのように数と単位を取得するのはUIからのユニット情報がないため難しいと思います。 – Henning

答えて

0

私の意見ではありますが、.NETの開発者があなたが言及した通りにそれを行うことを決めたのは、通貨の膨大なバリエーションのためです。私が言っていること:あなたが米国やロシア、中国の開発者であっても、長さ、平方などの測定に関する国際基準があります(国際単位系)。また、それは座標系についても同じです。クラスPointを参照してください、X.Y.(Z)はどこにでもあります。しかし、それは通貨については当てはまりません。アメリカの公式通貨はドルです。私の国(カザフスタン)では「テンゲ」です。

+0

私は、SI単位システムがプログラムで内部的に行く方法であることに同意しますが、残念なことに、すべての人がUIのようにそのユニットを表示することを望んでいません。ミルク1瓶:1Lの代わりに0.001m³(または0.264usガロン)。それは "問題"を引き起こすユーザーへのプレゼンテーションです、私は内部的に私は確かにSIを使用します。 – Henning

+0

@Henningも断片化しています。私。英国ではどのくらいの長さが使われていますか?それはあなたが測定しているものに依存します。私たちは多くのものにメートルを使用しますが、道路標示にはマイルとヤードを使用します。 –

+0

測定単位は標準化され、不変であり、数に制限があります(基本的に2つのシステムしかありません)ので、自信を持って独自の変換関数を書くことができます。 –

関連する問題