0

私はこのような数字を持っています: -1.0001 -10000.01

そして、これを取得する必要があります: -1.0001 -10000,01

要件: - 小数点区切り記号は「,」 - グループ区切り記号は「 "」 - コンマの後の数字の部分は、実際のデータによって異なる長さを持つことができます。

このマスク「### ### ##0.####」を使用して数値をフォーマットしようとしました。数値が大きい場合 - すべて問題ありませんが、小さい場合 - 数値の左側にスペースが入ります。私はこれを取得します: "- 1,0001" "- 10 000,01"

私が理解しているように、これらのスペースは私が使用したマスクからのものです。

いくつかの回避策がありますが、それらはそれほど美しくなく、審美的にも優れていません。

これを正しく行う方法はありますか?

ありがとうございました!

4

2 に答える 2

1

投稿時にstackoverflowによってスペースが自動的に削除されましたが、Trimのように使用するだけで問題を解決できると思います

something.ToString("### ### ##0.####").Trim();
于 2013-05-21T12:33:56.847 に答える
1

NumberFormatInfo クラスを使用して数値をフォーマットしてみてください。以下のコードを使用して回答を確認しましたが、テストした大小のケースで機能しました。

    static void Main(string[] args)
    {
        double smallNumber = -1.01;
        double smallNumberMoreDigits = -1.0001;
        double bigNumber = -100000.001;
        double longNumber = 2.2347894612789;

        Thread.CurrentThread.CurrentCulture = new CultureInfo("ru", false);            

        Console.Out.WriteLine(smallNumber.ToString("#,0.####"));
        Console.Out.WriteLine(smallNumberMoreDigits.ToString("#,0.####"));
        Console.Out.WriteLine(bigNumber.ToString("#,0.####"));
        Console.Out.WriteLine(longNumber.ToString("#,0.####"));

        Console.Read();
    }

編集: ちょっとした探偵の仕事 (私はあなたのプロフィールを見ました) から、あなたがロシアにいることがわかりました. 一般的なロシア語の数値形式をお探しですか? 上記のコードを変更しました。見て、それがあなたの要件に合っているかどうかを確認してください。次の結果が得られます。

-1,01 -1,0001 -100000,001

2 番目の編集: マスキングを追加して、小数点以下の桁数を改善しました。

于 2013-05-21T12:46:11.407 に答える