Веб-элементы управления ASP.NET отображаются неправильно в различных настройках культуры

У меня есть собственный веб-контроль.

Некоторый код в цикле:

double cellHeight = 12.34;
Label dcell = new Label();
dcell.Style["height"] = cellHeight  + "pt";
dcell.Text = cellHeight;

Если я использую CultureInfo("cs-CZ")

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("cs-CZ");

после рендера вышел html

<span style="height:11,75pt">11,75</span>

на самом деле я ожидал:

<span style="height:11.75pt">11,75</span> 

height:11,75pt Совершенно неправильно, когда отображается в браузере, на самом деле браузер не считает 11,75pt как 11.75pt,

Однако мне нужно, чтобы текстовое поле отображалось на основе информации о культуре: текстовое поле отображает 11,75 это правильно.

Так что это проблема - как я могу исправить?

1 ответ

Решение

Вам нужно правильно преобразовать double в строку, например:

dcell.Style["height"] = cellHeight.ToString("F", CultureInfo.CreateSpecificCulture("eu-ES")) + "pt";

Или вот так:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
dcell.Style["height"] = cellHeight.ToString(nfi) + "pt";
Другие вопросы по тегам