Объяснение здесь: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#attr-canvas-width как показано в другом сообщении, спасибо!
Внутренние размеры элемента canvas равны размеру пространства координат, причем числа интерпретируются в пикселях CSS. Однако элемент может быть произвольно задан таблицей стилей. Во время рендеринга изображение масштабируется в соответствии с этим размером макета.
blockquote>
int n;
bool isNumeric = int.TryParse("123", out n);
Обновление Начиная с C # 7:
var isNumeric = int.TryParse("123", out int n);
var s могут быть заменены соответствующими типами!
Все Ответы Полезны. Но при поиске решения, где Числовое значение является 12 цифрами или больше (в моем случае), затем при отладке, я нашел следующее решение полезным:
double tempInt = 0;
bool result = double.TryParse("Your_12_Digit_Or_more_StringValue", out tempInt);
переменная результата Th даст Вам TRUE или FALSE.
Если вы хотите узнать, является ли строка числом, вы всегда можете попробуйте разобрать его:
var numberString = "123";
int number;
int.TryParse(numberString , out number);
Обратите внимание, что TryParse
возвращает логическое значение
, которое можно использовать для проверки успешности синтаксического анализа.
Вы можете использовать TryParse, чтобы определить, можно ли преобразовать строку в целое число.
int i;
bool bNum = int.TryParse(str, out i);
Логическое значение сообщит вам, сработало это или нет.
Вероятно, это лучший вариант в C #.
Если вы хотите узнать, содержит ли строка целое число (целое число):
string someString;
// ...
int myInt;
bool isNumerical = int.TryParse(someString, out myInt);
Метод TryParse попытается преобразовать строку в число (целое число), и если это удастся он вернет true и поместит соответствующее число в myInt. Если нет, возвращается false.
Решения, использующие альтернативу int.Parse (someString)
, показанную в других ответах, работают, но намного медленнее, потому что генерирование исключений очень дорого. TryParse (...)
был добавлен в язык C # в версии 2, и до тех пор у вас не было выбора. Теперь вы это делаете: поэтому вам следует избегать альтернативы Parse ()
.
Если вы хотите принимать десятичные числа, десятичный класс также имеет метод .TryParse (...)
. Замените int на десятичное в приведенном выше обсуждении, и применяются те же принципы.
Вы всегда можете использовать встроенные методы TryParse для многих типов данных, чтобы увидеть, пройдет ли соответствующая строка.
Пример.
decimal myDec;
var Result = decimal.TryParse("123", out myDec);
Тогда результат будет = True
decimal myDec;
var Result = decimal.TryParse("abc", out myDec);
Результат будет тогда = False
В случае, если вы не хотите использовать int.Parse или double.Parse, вы можете сделать свой собственный, примерно так:
public static class Extensions
{
public static bool IsNumeric(this string s)
{
foreach (char c in s)
{
if (!char.IsDigit(c) && c != '.')
{
return false;
}
}
return true;
}
}
Я использовал эту функцию несколько раз:
public static bool IsNumeric(object Expression)
{
double retNum;
bool isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
Но вы также можете использовать;
bool b1 = Microsoft.VisualBasic.Information.IsNumeric("1"); //true
bool b2 = Microsoft.VisualBasic.Information.IsNumeric("1aa"); // false
Из Benchmarking IsNumeric Options
(источник: aspalliance.com )
(источник: aspalliance.com )
Это вернет истину, если вход
- все числа. Не знаю, лучше ли это, чем TryParse
, но он будет работать.
Regex.IsMatch(input, @"^\d+$")
Если вы просто хотите узнать, смешаны ли в нем одно или несколько чисел с символами, оставьте ^
+
и $
.
Regex.IsMatch(input, @"\d")
Изменить: На самом деле я думаю, что это лучше, чем TryParse, потому что очень длинная строка потенциально может вызвать переполнение TryParse.