Как отформатировать значение в процентах без знака процента?
float f = 0.479f;
Console.WriteLine(f.ToString("p1"));
вывод: 47.9 %
что я должен передать ToString (), чтобы удалить знак процента для вывода следующим образом:
47.9
правка. Я должен был упомянуть, что я передаю маску стороннему компоненту, который делает это с ним. К сожалению, я не могу выполнять акробатические трюки с цифрами. Это должна быть маска, которая делает трюк.
4 ответов
я должен был упомянуть, что я прохождения маска для 3rd партия компонент, который делает ее вещь с он. Я не могу выполнять акробатические трюки. с цифрами, к сожалению. Оно имеет быть маской, которая делает трюк.
поэтому я предполагаю, что вы застряли с Float.ToString(String)
, и что вы не можете редактировать только p1
на f.ToString("p1")
. Вот это хитро. Если вы не боитесь нарушить что-либо, связанное с подразумеваемыми изменениями, вы можете сделать следующий:
числовой формат "P", как задокументировано на MSDN, используется 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.
Как насчет следующих?
Console.WriteLine((f * 100).ToString("F1"));
например, f = 0.4792 -- > "47.9"
список и описания стандартного числового формата доступны здесь на MSDN, если это поможет.
можно попробовать
Console.WriteLine(f.ToString("p1").Replace('%',' '));
или, если вы не хотите пространство, используйте Replace('%','')
EDIT: если вы можете использовать только ToString()
метод, вы можете создать NumberFormatInfo
object, установите символ процента пустым и передайте его в метод.
(NumberFormatInfo
находится в System.Globalization
пространство имен)
например,
NumberFormatInfo myNewFormat = new NumberFormatInfo();
myNewFormat.PercentSymbol = "";
float f = 0.479f;
Console.WriteLine(f.ToString("p1",myNewFormat));