【发布时间】:2019-10-10 03:17:43
【问题描述】:
给定一个字符串和一个数字类型,我想检查该字符串是否可以转换为该类型,并且如果可能的话希望将该字符串转换为该类型。 Bellow 是我想要做的事情的 sudo 代码:
public bool DataIsValid(string s, Type someNumType) {
d = 0; // a class member double variable
if (s.CanBeConvertedTo(someNumType)) {
d = (double)s;
return true;
} else {
return false;
}
我一直在尝试将字符串转换为某种类型的数字,但我不知道是什么类型。我尝试使用 try/catch 块与
d = (double)Convert.ChangeType(s, someNumType);
但这仅适用于双打。使用整数时,我会收到错误“System.InvalidCastException”。
我认为问题在于转换后将其转换回双精度(因为它适用于双精度而不是整数)。可能
object data = Convert.ChangeType(s, someNumType)
d = (double)data;
工作?
【问题讨论】:
-
你可以试试trycast方法,如果转换成功与否,它会返回一个布尔值。如果您尝试转换为数字,那是整数吗?或者你的意思是它也可以是双倍的或浮动的?尝试转换为整数时的错误消息是什么?
-
什么是 Convert.ChangeType 方法?您尝试过 TryCast 吗?
-
在你的情况下,字符串总是一个数字? int 或 double 有什么意义?请给我们一个真实的例子好吗?
-
@Baahuali 一直在寻找如何使用 TryCast 的示例,但找不到。
-
什么是可转换为
int但不能转换为double的数字示例?short、byte或float怎么样?它们都不是很容易适应double吗?您的问题充其量也不清楚 - 您实际上想做什么,为什么确切的数据类型如此重要?
标签: c# string type-conversion