2010-09-17 2 views
0

Я использую инфранагруженную сетку и устанавливаю DisplayFormat для каждого столбца. DisplayFormat - это тип строки и использует его значение для отображения значения cellValue.ToString (DisplayFormat) при показе значений пользователю в сетке (как указано в Infra docs)Вопрос о строковых формах

В сетке у меня есть удвоения, которые имеют многие цифры после точки, и я не знаю, сколько. И мне нужно использовать тысячу сеператоров. Итак:

Если у меня есть:

<br/> 
12345678.12345 
<br/> 
12345678.12 
<br/> 
, I want grid to show: 
<br/> 
1234,5678.12345 
<br/>1234,5678.12 

Если я устанавливаю DisplayFormat к N5, я получаю: 1234,5678.12000

Как я могу это сделать?

ответ

3

Это не совсем ясно для меня, что вы хотите.

  1. Если вы хотите, чтобы показать точно 2 знака после запятой, то вы можете использовать N2.
  2. Если вы хотите показать только до 2 десятичных знака (если они содержат значимые цифры), используйте #,0.##.
  3. Если вы хотите показать все знатные числа после запятой, то вы можете использовать что-то вроде #,0.########. (В идеале нужно иметь около 340 # знаков после запятой обрабатывать все возможные значения double незначительных. Это до вас, чтобы определить, что именно вам нужно.)
+0

Я хочу, чтобы показать все цифры, что число есть. Но я хочу проигнорировать последние нули. Итак, если у меня есть 1.8900000, мне нужно показать только 1.89 – Archeg

+0

Спасибо, третий вариант, даже если он уродлив, работает) Действительно странно, почему fw не имеет лучшего способа предоставить такие форматы - я думаю, что они очень удобны для пользователей, friendly – Archeg

+0

В этом случае вам понадобится опция * (3) * выше: '#, 0. ########', и если вы ожидаете значения меньше 0,00000001, тогда вам нужно будет добавить больше '#' символы после десятичной точки (до 340 из них, что, я думаю, достаточно для обработки любого крошечного значения «double»). – LukeH

0

Я предлагаю использовать N2. Число - это количество десятичных знаков, которые вы хотите видеть, при необходимости заполняя их нулями.

+0

Мне нужно все числа после точки, у меня есть значения: 11234.271653876127836781263187 и 123213.12 Трудно будет читать 123213.1200000000000000 =) – Archeg

0

попробовать этот

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-us"); 
double x = 1234567.2342342d; 
Console.WriteLine(string.Format("{0:0,0.00}", x)); 

выход:

1,234,567.23

Смежные вопросы