关于System.Convert类型转换有关问题

关于System.Convert类型转换问题
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);


出错结果——关于System.Convert类型转换有关问题,会是哪方面的原因呢?还是我哪里理解错了?求指点
------解决思路----------------------
C#不是C++
数字类型不能转换为bool类型
小数也不能转换为整数

如果想小数转整数,你需要先转double,double再转int
------解决思路----------------------
引用:
数值类型互相转换是没有问题的
需要注意的就是bool类型和string类型
不是任何string都能转成别的类型的
比如"XYZ"这个字符串,你不管转成什么数值类型,不管按什么进制转换,都是转不了的.
而bool类型,ToString之后,是"True"或"False",而不是"1"和"0".


不能“想当然”,要根据库提供的函数和参数操作,否则就出错。
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.