Попробуйте, это будет работать
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center" />
</LinearLayout>
Вы можете проверить, является ли значение числовым, с помощью функции TSQL ISNUMERIC ()
http: // msdn .microsoft.com / en-us / library / ms186272.aspx
И, если вы еще не знаете об этом, TSQL теперь имеет конструкцию TRY CATCH.
По умолчанию нечисловые значения будут равны 0 и не потребуется другой оператор:
SELECT CASE
WHEN ISNUMERIC(myvarcharcolumn)=1 THEN
CONVERT(float, REPLACE(LTRIM(RTRIM(myvarcharcolumn)), ',', '.'))
ELSE 0 END AS myfloatcolumn
Вызов функции REPLACE () используется для замены запятых на точки. В некоторых культурах запятые используются в качестве десятичного разделителя (например, «1,25» вместо «1,25»), но если ваш сервер не настроен с одним из этих языков по умолчанию, ISNUMERIC () вернет 1, но CONVERT ( ) выдаст ошибку. Это действительно означает, что ваши строки не должны использовать запятые в качестве разделителей тысяч, но в большинстве случаев запятая для десятичного заполнителя, скорее всего, будет десятичным заполнителем.
LTRIM (RTRIM ()) вызван тем, что ISNUMERIC () вернет 1 для строки с начальными или конечными пробелами, но CONVERT () не может с ними справиться. Итак, вы должны обрезать свои струны.
Единственная оставшаяся потенциальная проблема заключается в том, что ISNUMERIC () вернет 1, если число может быть представлено как целое, денежное, десятичное или плавающее, но вы конвертируете только в число с плавающей запятой. На самом деле, float может хранить практически все, что вы на него бросаете, но если вы пытаетесь преобразовать его в int, ISNUMERIC () вернет 1 для такого значения, как «2.5», но CONVERT (int, '2.5') вернет по-прежнему выдает ошибку.
Если используемая вами версия SQL поддерживает среду CLR, вы можете написать методы в стиле TryParse. \ Однако это не соответствует вашим критериям добавления пользовательских функций в базу данных. Но, вероятно, он будет быстрее, чем SQL UDF.
что-то вроде
[SqlFunction]
public static SqlDouble TryParseDouble(SqlString str)
{
Double d;
bool success = Double.TryParse(str, out d);
if (!success)
return SqlDouble.Null;
return new SqlDouble(d);
}