我在vb中要计算一个矩阵的逆,而且我这个计算要求精度较高,本来的那个矩阵有14位有效数字,4乘4的矩阵,用来求逆,可是vb算出来的跟实际差了好多,导致我的计算精度太差,有高手能帮我解决这个问题吗?
谢谢啦~~

解决方案 »

  1.   

    Single 
    (单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38 
    Double 
    (双精度浮点型) 8 个字节 负数时从 -1.79769313486232E308 到 
    -4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308 
    Currency 
    (变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 
    Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001 
      

  2.   

    我的变量都是double型的了,可是计算的数据还是差很大呢,是不是可以用Matrix vb 呢 我刚在网上查的,希望高手帮帮忙呀
      

  3.   

    上面不是说了么?用Decimal类型试试
      

  4.   

    Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001。注意 此时,Decimal 数据类型只能在 Variant中使用,也就是说,不能声明一变量为 Decimal 的类型。不过可用 Cdec 函数,创建一个子类型为 Decimal 的 Variant。
      

  5.   

    CDec 函数示例
    该示例使用 CDec 函数将数字值转换为 Decimal。Dim MyDecimal, MyCurr
    MyCurr = 10000000.0587   ' MyCurr 是货币。
    MyDecimal = CDec(MyCurr)    ' MyDecimal 是二进制数。
      

  6.   

    double不行的话基本上就只能模拟了。
      

  7.   

    我用的vbmatrix 计算的 可以了