float f = 0.479f;
Console.WriteLine(f.ToString("p1"));
输出:47.9%
我应该传递给ToString()以删除输出的百分号,如下所示:
47.9
EDIT。我应该已经提到过,我正在将掩码传递给第三方组件,它可以实现它的功能。不幸的是,我无法使用这些数字进行任何杂技表演。它必须是制作技巧的面具。
答案 0 :(得分:11)
我应该提到我 将面具传递给第三方 与之相关的组件 它。我不能表演任何杂技 不幸的是,这些数字。它有 成为伎俩的面具。
所以我认为你被Float.ToString(String)
困住了,而你只能编辑p1
中的f.ToString("p1")
。现在这是一个棘手的问题。如果您不害怕破坏与隐含的更改相关的任何内容,您可以执行以下操作:
记录为On MSDN的“P”数字格式使用NumericFormatInfo.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调用,这将是一种方法。
答案 1 :(得分:5)
Console.WriteLine((f * 100).ToString("0.0"));
答案 2 :(得分:2)
可以尝试
Console.WriteLine(f.ToString("p1").Replace('%',' '));
或者,如果您不想要空格,请使用Replace('%','\0')
编辑:如果只能使用ToString()
方法,则可以创建NumberFormatInfo
对象,将百分比符号设置为空白并将其传递给方法。
(NumberFormatInfo
位于System.Globalization
命名空间中)
e.g。
NumberFormatInfo myNewFormat = new NumberFormatInfo();
myNewFormat.PercentSymbol = "";
float f = 0.479f;
Console.WriteLine(f.ToString("p1",myNewFormat));
答案 3 :(得分:2)
以下几点怎么样?
Console.WriteLine((f * 100).ToString("F1"));
e.g。 f = 0.4792 - &gt; “47.9”
标准数字格式的列表和说明可供here on MSDN使用,以防万一。