.net中也有decimal类型的,你可以使用这个类型
可以有decimal.ToString("C")来控制精度

解决方案 »

  1.   

    先做double运算,转成decimal类型存储!
      

  2.   

    Decimal 数据类型请参见
    数据类型摘要 | Decimal 结构 | 类型转换函数 | 转换摘要 | 有效使用数据类型
    Decimal 变量以 128 位(16 个字节)带符号的整数形式存储,并以 10 为幂值变比。比例因子指定小数点右面的数字位数,其范围为 0 到 28。小数位数为 0(没有小数位)时,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001 (+/-1E-28)。在文本后追加文本类型字符 D 可将其强制转换为 Decimal 数据类型。在任何标识符后追加标识符类型字符 @ 可将其强制转换为 Decimal 数据类型。可能需要使用 D 类型字符将大数值分配给 Decimal 变量或常数,如下例所示:Dim BigDec1 As Decimal = 9223372036854775807   ' No overflow.
    Dim BigDec2 As Decimal = 9223372036854775808   ' Overflow.
    Dim BigDec3 As Decimal = 9223372036854775808D  ' No overflow.
    这是因为在没有文本类型字符的情况下,文本就被视为 Long,赋给 BigDec2 的值对于 Long 类型来说太大。等价的 .NET 数据类型是 System.Decimal。