代码之家  ›  专栏  ›  技术社区  ›  Aidan Ryan

为什么要转换.todouble(字符串)圆?

  •  3
  • Aidan Ryan  · 技术社区  · 16 年前

    例如,convert.todouble(“0.1234567890123456789”)=0.123456789012346

    有效数字的最大数目是多少?在文档中找不到。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Chris Marasti-Georg Scott Weinstein    16 年前

    MSDN :

    精度:15-16位。

        2
  •  7
  •   Joel Coehoorn    16 年前

    当然有一个最大的精度。它是用存储双精度数的位来表示的最大值。对于这个字符串,您可以尝试使用十进制。

        3
  •  2
  •   Kip    16 年前

    如果您真的想了解浮点数的二进制表示,请参见 IEEE 754-1985 在维基百科上。

    基本上,它是

    sign * 1.mantissa * 2^(exponent - bias)

    分配给尾数和指数字段的位数决定了数字的精度。

        4
  •  1
  •   sk.    16 年前

    http://en.wikipedia.org/wiki/Double_precision

    double只有64位的存储空间,其中一些用于符号和指数,因此小数部分的位数(通常为15)是有限的。一个浮点只有32位,所以精度为8-9位。另外,有些数字不能用浮点数精确表示,因此您可能会在转换中看到一些舍入错误。