为什么Convert.ToDouble(string)是圆的?

时间:2008-10-22 17:16:43

标签: .net string

例如,Convert.ToDouble(“0.1234567890123456789”)= 0.123456789012346

有效数字的最大数量是多少?无法在文档中找到它。

4 个答案:

答案 0 :(得分:7)

当然有最高精度。它是用于存储双精度的位数表达的最大值。对于该字符串,您可以尝试使用Decimal。

答案 1 :(得分:3)

来自MSDN

精确度:15-16位。

答案 2 :(得分:2)

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

基本上,它是

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

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

答案 3 :(得分:1)

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

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