3

テキスト フィールドにデータを取得しており、パーセンテージで表示する必要があります。これを実行する機能はありますか?

例: 私の列には"0.5", "0.1","0.2","0.25"etc があり、これを etc として表示する必要があります 50%,10%,20%,25%。どのように表示するのが最善ですか?

4

2 に答える 2

11

これは、次の 2 つのフェーズで行う必要があります。

  • テキストを数値として解析して、値を「実際の」タイプとして取得します。(原則として、できるだけ早くテキストから解析し、できるだけ遅く文字列にフォーマットします... 2 つの間の操作は、自然な型を使用するとはるかに簡単になります。)
  • パーセンテージの標準数値書式文字列を使用して、数値をパーセンテージとして書式設定します

そう:

decimal percentage = decimal.Parse(input);
string output = percentage.ToString("p0");

ノート:

  • 入力文化と出力文化の両方を考慮する必要があります。常に「。」を使用することを期待していますか? たとえば、小数点として?
  • decimalテキスト内の値を正確に表すのではなく使用doubleします (たとえば、テキストに「0.1」を含めることはできdoubleますが、正確に 0.1 の値を保持することはできません)。
  • 必要な精度などをフォーマットに追加できます。詳細については、リンクされたドキュメントを参照してください。この例では、整数のパーセンテージのみを示しています。たとえば、
于 2013-01-16T13:53:55.750 に答える
4

最も簡単なのは、それを解析して (double である必要があります)、それを文字列に変換して、パーセンテージとして書式設定することです。

var percentageString = double.Parse(doubleString).ToString("p1");

さて、あなたの中には、この場合はdecimalが正しい型であると言う人もいるかもしれません。

はい、追加の 12 ~ 13 桁の精度が必要な場合。

ただし、私たちのほとんどの人は(そして、私はそれを現実に保つことに全力を注いでいます)、double15 ~ 16 桁の精度で問題ありません。

本当の選択は、コードが最初に double または decimal を使用するかどうかです。コードで double を使用している場合は、double を使用してください。小数の場合は、小数に固執します。絶対に避けたいのは、ドラゴンが存在するため、絶対に必要な以上に 2 つの間で変換する必要があることです。また、データを破損する可能性のある予期しないランタイム バグもあります。でもほとんどドラゴン。

于 2013-01-16T13:54:13.650 に答える