.net 为什么Convert.ToDouble(string)循环?

.net 为什么Convert.ToDouble(string)循环?,.net,string,.net,String,例如,Convert.ToDouble(“0.12345678900123456789”)=0.1234567890012346 有效数字的最大数量是多少?在文档中找不到它。来自: 精度:15-16位。当然有最大精度。这是用来存储双精度的位所能表达的最大值。对于该字符串,您可以尝试使用十进制。如果您真的想了解浮点数的二进制表示形式,请参阅Wikipedia上的 基本上是 符号*1.尾数*2^(指数-偏差) 分配给尾数和指数字段的位数决定了数字的精度。 double只有64位的存储空间,其中一些用

例如,Convert.ToDouble(“0.12345678900123456789”)=0.1234567890012346

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

来自:


精度:15-16位。

当然有最大精度。这是用来存储双精度的位所能表达的最大值。对于该字符串,您可以尝试使用十进制。

如果您真的想了解浮点数的二进制表示形式,请参阅Wikipedia上的

基本上是

符号*1.尾数*2^(指数-偏差)

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


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

根据MSDN,一个.NET浮点可以得到7位精度。
double
有53位(15.95位)精度,而
float
有24位(7.22位)。