Непонятки с string.Format
От: senglory  
Дата: 16.09.09 19:58
Оценка:
using System;
using System.Collections;
using System.Globalization;



public class Sample
{


  public static void Main()
  {
        string dv = "2.452311234";
        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0:P}",dv));
  }
}


Почему я не получаю 2.452311234% на выходе? И как сделать чтобы получалось?
Re: Непонятки с string.Format
От: Andir Россия
Дата: 16.09.09 20:09
Оценка: 3 (1) +1
Здравствуйте, senglory, Вы писали:

S>Почему я не получаю 2.452311234% на выходе? И как сделать чтобы получалось?


модификатор "P" для форматной строки работает только для numeric types (int, double, float и т.п).
Чтобы получалось надо делать так:
double dv = 0.02452311234;
Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0:P9}", dv));


С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha 4 rev. 1233 ) { /* Работаем */ }
Re: Непонятки с string.Format
От: Sinix  
Дата: 17.09.09 00:23
Оценка: :))
Если не нравится вариант выше — индусопаттерн:

//...
        string dv = "2.452311234";
        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0}%",dv));
//...
S>

Re[2]: Непонятки с string.Format
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 17.09.09 01:04
Оценка: :)
Здравствуйте, Sinix, Вы писали:

Ты чему людей учишь?
[КУ] оккупировала армия.
Re[2]: Непонятки с string.Format
От: Ziaw Россия  
Дата: 17.09.09 03:48
Оценка: :))
Здравствуйте, Sinix, Вы писали:

S>Если не нравится вариант выше — индусопаттерн:


S>
S>//...
S>        string dv = "2.452311234";
S>        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0}%",dv));
S>//...
S>>


Слабовато
        string dv = "0.02452311234";
        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0}{1}.{2}%", 
                        dv.Substring(2, 1) == "0" ? String.Empty : dv.Substring(2, 1), 
                        dv.Substring(3, 1), 
                        dv.Substring(4)));
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[3]: Непонятки с string.Format
От: Ziaw Россия  
Дата: 17.09.09 03:56
Оценка: :)
Здравствуйте, Ziaw, Вы писали:

Z>Слабовато

Z>
Z>        string dv = "0.02452311234";
Z>        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0}{1}.{2}%", 
Z>                        dv.Substring(2, 1) == "0" ? String.Empty : dv.Substring(2, 1), 
Z>                        dv.Substring(3, 1), 
Z>                        dv.Substring(4)));
Z>


Да, любой более аккуратный индус конечно найдет ошибки в этом коде и исправит:
        string dv = "0.02452311234";
        Console.WriteLine(string.Format( CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}", 
                        dv.Substring(2, 1) == "0" ? String.Empty : dv.Substring(2, 1), 
                        dv.Substring(3, 1), 
                        CultureInfo.InvariantCulture.PercentDecimalSeparator,
                        dv.Substring(4, CultureInfo.InvariantCulture.PercentDecimalDigits),
                        CultureInfo.InvariantCulture.PercentSymbol));
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.