例如在java中是这样的:if( object instanceOf Number ) ......
另外,如何将数字按照指定的格式串格式化成一个字符串?如###,###.#0
14 个解决方案
#1
没有
#2
int.TryParse()
#3
(123456.7891).ToString("N2");
#4
1.double.TryParse(s,out result)
参数
s
包含要转换的数字的字符串。
result
当此方法返回时,如果转换成功,则包含与s参数等效的双精度浮点数;如果转换失败,则包含零。如果s参数为空引用,不是格式有效的数字或者表示的数字小于MinValue或大于MaxValue,则转换将失败。该参数未经初始化即被传递。
返回值
如果s转换成功,则为true;否则为false。
2.result.ToString("###,###.#0")
使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。
参数
s
包含要转换的数字的字符串。
result
当此方法返回时,如果转换成功,则包含与s参数等效的双精度浮点数;如果转换失败,则包含零。如果s参数为空引用,不是格式有效的数字或者表示的数字小于MinValue或大于MaxValue,则转换将失败。该参数未经初始化即被传递。
返回值
如果s转换成功,则为true;否则为false。
2.result.ToString("###,###.#0")
使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。
#5
没有一句话的判断,不过可以使用自定义函数
public bool isNumeric(string inString)
{
inString=inString.Trim();
bool haveNumber=false;
bool haveDot=false;
for(int i=0;i<inString.Length;i++)
{
if (Char.IsNumber(inString[i]))
{
haveNumber=true;
}
else if(inString[i].ToString() == ".")
{
if (haveDot)
{
return false;
}
else
{
haveDot=true;
}
}
else if(i==0)
{
if(inString[i].ToString() !="+" && inString[i].ToString() != "-")
{
return false;
}
}
else
{
return false;
}
if(i>20)
{
return false;
}
}
return haveNumber;
}
#6
// 标准数字格式字符串用法说明及举例
class NumberFormat
{
static void Main()
{
// {index[,alignment][:format]}
// index - 从零开始的整数,指示对象列表中要格式化的元素。
// alignment - 可选整数,指示最小宽度,不足部分用空格填充。负数指示左对齐,正数指示右对齐。
// format - 格式字符串。标准数字格式字符串采取“Axx”形式,A为单个字母, 说明如下:
// c - 货币, xx指示小数位数
// d - 十进制, xx指示有效位数, 不足用零填充, 只能用于整数
// x - 十六进制, 用法同d
// e - 指数, xx指示小数位数
// f - 固定点, xx指示小数位数
// n - 数字, 输出千位分隔符, 其余同f
// g - 常规, xx指示有效位数, 使用e或f中较短者
// p - 百分比, xx指示小数位数
// 例如以下语句的输出为: "|¥-5.00|-05| -05|-5.0 |-500%|12345.7|12,345.7|"
System.Console.WriteLine("|{0:c}|{0:d2}|{0,4:d2}|{0,-5:f1}|{0:p0}|{1:f1}|{1:n1}|", -5, 12345.67);
}
}
#7
public static bool IsNumeric(object Expression)
{
bool isNum;
double retNum;
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
{
bool isNum;
double retNum;
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
#8
但是当object="123"时,它是字符串对象,不应该是数字
#9
一个个的判断也不是很复杂,毕竟数字类型是有限的
public static bool IsNumeric(object AObject)
{
return AObject is sbyte || AObject is byte ||
AObject is short || AObject is ushort ||
AObject is int || AObject is uint ||
AObject is long || AObject is ulong ||
AObject is double || AObject is char ||
AObject is decimal || AObject is float ||
AObject is double;
}
#10
object str="3343ffff";
string newstr = str.ToString();
for (int i = 0; i<newstr .Length;i++ )
{
if (char.IsNumber(newstr , i))
{
--是数字类型!;
return;
}
else
{
--不是数字类型!;
return;
}
}
#11
object obj = "xxx";
try
{
Convert.ToDecimal(obj);
return true;
}
catch(Exception)
{
return false ;
}
try
{
Convert.ToDecimal(obj);
return true;
}
catch(Exception)
{
return false ;
}
#12
呵呵,楼上的方法是比较常用的,硬来不行那就不是数字了呗~
#13
其实只要这样: 判断这个object能否转换为decimal, 可以说明是数字, 否则不是
所以9楼的代码 可以简化为
public static bool IsNumeric(object AObject)
{
return (AObject as decimal) != null;
}
个人观点 不一点正确呵呵
所以9楼的代码 可以简化为
public static bool IsNumeric(object AObject)
{
return (AObject as decimal) != null;
}
个人观点 不一点正确呵呵
#14
mark
#1
没有
#2
int.TryParse()
#3
(123456.7891).ToString("N2");
#4
1.double.TryParse(s,out result)
参数
s
包含要转换的数字的字符串。
result
当此方法返回时,如果转换成功,则包含与s参数等效的双精度浮点数;如果转换失败,则包含零。如果s参数为空引用,不是格式有效的数字或者表示的数字小于MinValue或大于MaxValue,则转换将失败。该参数未经初始化即被传递。
返回值
如果s转换成功,则为true;否则为false。
2.result.ToString("###,###.#0")
使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。
参数
s
包含要转换的数字的字符串。
result
当此方法返回时,如果转换成功,则包含与s参数等效的双精度浮点数;如果转换失败,则包含零。如果s参数为空引用,不是格式有效的数字或者表示的数字小于MinValue或大于MaxValue,则转换将失败。该参数未经初始化即被传递。
返回值
如果s转换成功,则为true;否则为false。
2.result.ToString("###,###.#0")
使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。
#5
没有一句话的判断,不过可以使用自定义函数
public bool isNumeric(string inString)
{
inString=inString.Trim();
bool haveNumber=false;
bool haveDot=false;
for(int i=0;i<inString.Length;i++)
{
if (Char.IsNumber(inString[i]))
{
haveNumber=true;
}
else if(inString[i].ToString() == ".")
{
if (haveDot)
{
return false;
}
else
{
haveDot=true;
}
}
else if(i==0)
{
if(inString[i].ToString() !="+" && inString[i].ToString() != "-")
{
return false;
}
}
else
{
return false;
}
if(i>20)
{
return false;
}
}
return haveNumber;
}
#6
// 标准数字格式字符串用法说明及举例
class NumberFormat
{
static void Main()
{
// {index[,alignment][:format]}
// index - 从零开始的整数,指示对象列表中要格式化的元素。
// alignment - 可选整数,指示最小宽度,不足部分用空格填充。负数指示左对齐,正数指示右对齐。
// format - 格式字符串。标准数字格式字符串采取“Axx”形式,A为单个字母, 说明如下:
// c - 货币, xx指示小数位数
// d - 十进制, xx指示有效位数, 不足用零填充, 只能用于整数
// x - 十六进制, 用法同d
// e - 指数, xx指示小数位数
// f - 固定点, xx指示小数位数
// n - 数字, 输出千位分隔符, 其余同f
// g - 常规, xx指示有效位数, 使用e或f中较短者
// p - 百分比, xx指示小数位数
// 例如以下语句的输出为: "|¥-5.00|-05| -05|-5.0 |-500%|12345.7|12,345.7|"
System.Console.WriteLine("|{0:c}|{0:d2}|{0,4:d2}|{0,-5:f1}|{0:p0}|{1:f1}|{1:n1}|", -5, 12345.67);
}
}
#7
public static bool IsNumeric(object Expression)
{
bool isNum;
double retNum;
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
{
bool isNum;
double retNum;
isNum = Double.TryParse(Convert.ToString(Expression), System.Globalization.NumberStyles.Any, System.Globalization.NumberFormatInfo.InvariantInfo, out retNum);
return isNum;
}
#8
但是当object="123"时,它是字符串对象,不应该是数字
#9
一个个的判断也不是很复杂,毕竟数字类型是有限的
public static bool IsNumeric(object AObject)
{
return AObject is sbyte || AObject is byte ||
AObject is short || AObject is ushort ||
AObject is int || AObject is uint ||
AObject is long || AObject is ulong ||
AObject is double || AObject is char ||
AObject is decimal || AObject is float ||
AObject is double;
}
#10
object str="3343ffff";
string newstr = str.ToString();
for (int i = 0; i<newstr .Length;i++ )
{
if (char.IsNumber(newstr , i))
{
--是数字类型!;
return;
}
else
{
--不是数字类型!;
return;
}
}
#11
object obj = "xxx";
try
{
Convert.ToDecimal(obj);
return true;
}
catch(Exception)
{
return false ;
}
try
{
Convert.ToDecimal(obj);
return true;
}
catch(Exception)
{
return false ;
}
#12
呵呵,楼上的方法是比较常用的,硬来不行那就不是数字了呗~
#13
其实只要这样: 判断这个object能否转换为decimal, 可以说明是数字, 否则不是
所以9楼的代码 可以简化为
public static bool IsNumeric(object AObject)
{
return (AObject as decimal) != null;
}
个人观点 不一点正确呵呵
所以9楼的代码 可以简化为
public static bool IsNumeric(object AObject)
{
return (AObject as decimal) != null;
}
个人观点 不一点正确呵呵
#14
mark