22

次のような人間に優しい方法で、C#で非常に小さな数字を出力したいと思います。

30µ3E-5またはのため456.789n0.000000456789

私は C の BSD のHumanize_number () 関数を知っていますが、ビット整数のみと互換性があり、float と double とは互換性がありません。それらをサポートするC#に相当するものはありますか?

また、数値を表示するときは、次のように一定の精度を維持する必要があります。

0.003596として表示されるべきではあり3.596µません3.6µ(またはもっと悪い場合は)。

ここで考えられる答え: Formatting Large Numbers with .NET but adapted for negative log10 は、コンマの後の数字を 1 桁に切り捨てることです。私の意見では、それは完全にはほど遠いです。

私が物事を提示したい方法の例:

3000        3K
3300        3.3K
3333        3.333K
30000       30k
300000      300k
3000000     3M
3000003     3.000003M // or 3M if I specify "4 digits precision"
0.253       253m
0.0253      25.3m
0.00253     2.53m
-0.253003   -253.003m

SOで関連する回答を見つけるために質問を作成できなかったので、質問がすでに回答されている場合は、すぐに発砲してください!

4

4 に答える 4

0

DllImport を使用して Humanize_Number 関数を使用できますか?? 詳細はこちら:

C# で dll を動的にロードする

于 2013-04-18T13:16:08.693 に答える
0

なぜ 10^(10 進数の後の数を数える) を掛けないのですか? 小数点以下の数値の同じカウントを使用して、表示する単位を特定できます。ライブラリ全体をインポートするよりもはるかに優れています。

于 2013-04-18T13:29:43.407 に答える