2016-03-06 4 views
2

См. this issue для фона. Я фактически пытаюсь получить следующий выстраиваться:Включить HTML в числовой формат .ToString()

$ 123.00 
($ 3,231.99) 
    $ 0.82 

Я получил это близко, вставив Юникод NBSP в строку формата. Однако nbsp не является ТОЧНОЙ такой же шириной, как и перцентеза.

Есть ли способ включить HTML в строку формата и правильно ли это интерпретировать? Я использую ASP.NET MVC с Razor ViewEngine.

В настоящее время я трансформируя их с чем-то вроде этого:

Value.ToString("$ #,0.00;($ #,0.00);"); 

Я добавил NBSP как это (что довольно близко):

Value.ToString("$ #,0.00\u00A0;($ #,0.00);"); 

Я имею в виду что-то вроде этого, чтобы сделать это идеально подходят для каждого шрифта:

Value.ToString("$ #,0.00<span class='color:transparent;'>)</span>;($ #,0.00;"); 

Мысли?

+2

Вы должны «правильно зажечь» свои значения в определенном элементе width и изменить шрифт на шрифт с фиксированной шириной. Любая другая попытка, использующая неблокирующие пространства или что-то еще, редко дает результаты, которые вы ищете. –

+0

Все мои номера уже фиксированной ширины ... просто не некоторые из символов ... там должен быть способ сделать это с помощью любого шрифта - это такая простая вещь, как сделать с строкой формата Excel ... – William

ответ

2

Чтобы решить проблему, я бы просто использовал таблицы. Хорошая часть этого решения заключается в том, что все столбцы будут иметь равную ширину.

table{ 
 
    border-collapse: collapse; 
 
    } 
 
table tr td{ 
 
    text-align: right 
 
    }
<table> 
 
    <tr> 
 
    <td></td> 
 
    <td>$</td> 
 
    <td>123.00</td> 
 
    </tr> 
 
    <tr> 
 
    <td>(</td> 
 
    <td>$</td> 
 
    <td>3,231.99</td> 
 
    <td>)</td> 
 
    </tr> 
 
    <tr> 
 
    <td></td> 
 
    <td>$</td> 
 
    <td>0.82</td> 
 
    </tr> 
 
</table>

+0

Неплохая идея - это сработало бы для некоторых из моих сценариев - за исключением того, что мне нужно делать форматирование с помощью строки числового формата, потому что я хочу форматировать элементы управления DevExpress одинаково - я уверен, что есть способ сделать он работает, включив HTML в строку формата. Я думаю, что я просто что-то пропустил ... – William

0

В качестве альтернативы несколько столбцов таблицы ответа, вы можете использовать моноширинный шрифт и правильный текст выравнивание для числовых столбцов, а затем пространство в конце положительных чисел должно правильно согласовать с правильный пар отрицательных чисел.

Примеры семейств моноширинных шрифтов. http://www.w3schools.com/cssref/css_websafe_fonts.asp

"Courier New", Courier, моноширинный

"Lucida Console", Монако, моноширинный

Примечание: поиск в Интернете может привести вас к <TD align="char" char="." >. НЕ используйте этот параметр align = char, поскольку он не поддерживается в HTML5.

+0

Да, это будет хороший вариант в более простом сценарии - но я довольно привязан к используемому шрифту - также шрифты Monospace имеют тенденцию быть настолько уродливыми - – William

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