关于System.Convert类型转换有关问题
关于System.Convert类型转换问题
C#本质论这本书上说,System.Convert只支持预定义数量的类型,而且是不可扩展的,它允许从任何基本数据类型转换到其它基本数据类型
我的疑问是,为什么我这样的程序会出错
出错结果——,会是哪方面的原因呢?还是我哪里理解错了?求指点
------解决思路----------------------
C#不是C++
数字类型不能转换为bool类型
小数也不能转换为整数
如果想小数转整数,你需要先转double,double再转int
------解决思路----------------------
不能“想当然”,要根据库提供的函数和参数操作,否则就出错。
Convert.ToBoolean 方法 (String)
参数必须能被它的规则识别才行,而不是0和1就行的。
C#本质论这本书上说,System.Convert只支持预定义数量的类型,而且是不可扩展的,它允许从任何基本数据类型转换到其它基本数据类型
我的疑问是,为什么我这样的程序会出错
string misc = "36.987";
string mis = "0";
double dbu = Convert.ToDouble(misc);
bool boolean = Convert.ToBoolean(dbu);
bool boomis = Convert.ToBoolean(mis); //这里出错
int cnt = Convert.ToInt32(misc); //这里也出错
Console.WriteLine("字符串转换为浮点型:dbu = {0}\n", dbu);
Console.WriteLine("字符串转换为布尔型:boolean = {0}\n", boolean);
Console.WriteLine("字符串转换为整型:cnt = {0}\n", cnt);
出错结果——,会是哪方面的原因呢?还是我哪里理解错了?求指点
------解决思路----------------------
C#不是C++
数字类型不能转换为bool类型
小数也不能转换为整数
如果想小数转整数,你需要先转double,double再转int
------解决思路----------------------
不能“想当然”,要根据库提供的函数和参数操作,否则就出错。
Convert.ToBoolean 方法 (String)
参数必须能被它的规则识别才行,而不是0和1就行的。
using System;
public class BooleanConversion
{
public static void Main()
{
String[] values = { null, String.Empty, "true", "TrueString",
"False", " false ", "-1", "0" };
foreach (var value in values) {
try
{
Console.WriteLine("Converted '{0}' to {1}.", value,
Convert.ToBoolean(value));
}
catch (FormatException)
{
Console.WriteLine("Unable to convert '{0}' to a Boolean.", value);
}
}
}
}
// The example displays the following output:
// Converted '' to False.
// Unable to convert '' to a Boolean.
// Converted 'true' to True.
// Unable to convert 'TrueString' to a Boolean.
// Converted 'False' to False.
// Converted ' false ' to False.
// Unable to convert '-1' to a Boolean.
// Unable to convert '0' to a Boolean.