2013-11-21 2 views
0

У меня проблема с выходом в коде ниже.C# - Возможно, ploblem with CultureInfo.InvariantCulture

using System; 
using System.Globalization; 

class GreaterNum 
{ 
    static void Main() 
    { 
     double num1 = 0; 
     double num2 = 0; 

     System.Threading.Thread.CurrentThread.CurrentCulture = 
     System.Globalization.CultureInfo.InvariantCulture; 

     Console.Write("Enter first number: "); 
     bool isDouble1 = Double.TryParse(Console.ReadLine(), out num1); 

     Console.Write("Enter second number: "); 
     bool isDouble2 = Double.TryParse(Console.ReadLine(), out num2); 

     if (isDouble1 && isDouble2) 
     { 
       Console.WriteLine("The greater number is: " + Math.Max(num1, num2)); 
     } 
     else 
     { 
       Console.WriteLine("Not a valid number!"); 
     } 
    } 
} 

Проблема в том, что, когда числа не являются десятичными "." выход:

Введите первое число: 1,2 Введите второе число: 2,3 Чем больше число: 23

+0

Этого следовало ожидать. «,» - это тысячный разделитель, поэтому синтаксический анализ будет игнорировать его. –

+0

System.Threading.Thread.CurrentThread.CurrentCulture = \t \t \t \t новый CultureInfo ("nl"); –

ответ

2

Попробуйте установить System.Threading.Thread.CurrentThread.CurrentUICulture, а также.

System.Threading.Thread.CurrentThread.CurrentUICulture = 
     System.Globalization.CultureInfo.InvariantCulture; 
+0

Да, это работает. Большое спасибо. –

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