Когда я попытался настроить формат чисел для диапазона ячеек в файле excel, я обнаружил довольно странное поведение. Есть два примера кода:Interop.Excel.Range vs dynamic
// First example uses the Microsoft.Office.Interop.Excel.Range interface.
void SetupFormat(Range range)
{
range.NumberFormat = "0" + CultureInfo.InstalledUICulture.NumberFormat.CurrencyDecimalSeparator + "00%";
}
// Second one uses a dynamic.
void SetupFormat(dynamic range)
{
range.NumberFormat = "0" + CultureInfo.InstalledUICulture.NumberFormat.CurrencyDecimalSeparator + "00%";
}
Когда я использую первый метод я получаю номера, как 012%, когда я использую второй метод я получаю номера, как 12,34% (как и ожидалось). Первый метод работает нормально, когда я использую период в формате чисел. Кто-нибудь знает, почему у этих методов другое поведение?
Похоже, что проблема локали (разделитель десятичной). – pnuts