float f = 0.479f;
Console.WriteLine(f.ToString("p1"));
出力: 47.9 %
次のような出力のパーセント記号を削除するには、ToString() に何を渡す必要がありますか。
47.9
編集。マスクをサードパーティのコンポーネントに渡していることを言及する必要がありました。残念ながら、数字でアクロバットを行うことはできません。トリックを行うのはマスクでなければなりません。
マスクをサードパーティのコンポーネントに渡していることを言及する必要がありました。残念ながら、数字でアクロバットを行うことはできません。トリックを行うのはマスクでなければなりません。
だから私はあなたが立ち往生していると仮定し、あなたはFloat.ToString(String)
編集することしかできp1
ないf.ToString("p1")
. これは難しい問題です。暗示されている変更に関連するものを壊すことを恐れていない場合は、次のことを行うことができます。
「P」数値形式は、MSDNNumericFormatInfo.PercentSymbol
で文書化されているように、「%」記号を記述するために使用されます。NumericFormatInfo
は現在の のメンバーですCultureInfo
。あなたができることは、あなたCurrentCulture
のを複製し、PercentSymbolを""
次のように変更することです:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
float f = 0.479f;
Console.WriteLine(f.ToString("p1")); //will write 47.9%
CultureInfo ci = CultureInfo.CurrentCulture.Clone() as CultureInfo;
ci.NumberFormat.PercentSymbol = "";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine(f.ToString("p1")); //will write 47.9
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
ToString 呼び出しを変更したくない場合は、これが適しています。
Console.WriteLine((f * 100).ToString("0.0"));
試すことができました
Console.WriteLine(f.ToString("p1").Replace('%',' '));
または、スペースが必要ない場合は、Replace('%','\0')
編集:メソッドしか使用できない場合はToString()
、オブジェクトを作成しNumberFormatInfo
、パーセント記号を空白に設定してメソッドに渡すことができます。(名前空間NumberFormatInfo
にあります)例System.Globalization
NumberFormatInfo myNewFormat = new NumberFormatInfo();
myNewFormat.PercentSymbol = "";
float f = 0.479f;
Console.WriteLine(f.ToString("p1",myNewFormat));
以下だけではどうでしょうか。
Console.WriteLine((f * 100).ToString("F1"));
例 f = 0.4792 --> "47.9"
標準の数値形式のリストと説明は、こちらの MSDNで入手できます。