Preguntas más frecuentes sobre tipos numéricosPreguntas más frecuentes sobre clases numéricas, incluidas System.Int16, System.Int32, System.Int64, System.Single, System.Double, System.Decimal, System.Byte, System.SByte, System.UInt16, System.UInt32, System.UInt64, System.IntPtr y System.Math. ¿Por qué no funciona Double.Parse(Double.MaxValue.ToString())? Nos encanta conocer sus ideas, problemas o peticiones. Quizás esté interesado en saber por qué se ha diseñado algo de una manera en particular, la mejor manera de solucionar un problema o los motivos por los que el código que ha creado no funciona como esperaba. Además, puede enviar al equipo de BCL sus sugerencias para versiones futuras de Framework, como clases adicionales que incluir (siempre es útil describir los escenarios que necesita admitir) o API nuevas para clases existentes. Para enviar su pregunta, simplemente envíe un correo electrónico a The BCL Team (bclpub@microsoft.com). ¿Por qué no funciona Double.Parse(Double.MaxValue.ToString())? Existe una opción de formato r, de manera que Double.ToString(r) dará como resultado una representación decimal para completar la ida y la vuelta al mismo valor, que puede ser lo requerido. Esta llamada es más lenta debido al trabajo extra necesario para tener en cuenta las aproximaciones que se realizan durante el análisis. El motivo por el que Double no puede analizar los valores máximos y mínimos, al contrario que Single, es que Double redondea en una dirección tal que los valores máximos y mínimos completan la ida y la vuelta en un número ligeramente alejado de 0 (por lo tanto, un número que no puede adaptarse a un Double). Single redondea al contrario. Los ingenieros de otros componentes que intentan probar el intervalo del dominio completo de otro tipo que toma un Double se encuentran con este problema frecuentemente. Este comportamiento es molesto, por lo que se está considerando una solicitud de característica para el tratamiento especial de la forma del texto de los valores máximos y mínimos durante el análisis. ¿Es compatible .NET Framework con números grandes? La clase Decimal es lo más parecido a un número grande en .NET Framework, en V1.0 y V1.1. Es compatible con 96 bits de precisión y 16 bits de ajuste de escala. No hay un tipo de número grande en V1.0 o V1.1, ni compatibilidad anunciada en las versiones preliminares de Visual Studio 2005 (Whidbey). Existe un gran interés razonable en este tipo, así que es probable que aparezca en futuras versiones, lo que no es poco trabajo. ¿Es compatible .NET Framework con números complejos? En una versión futura, .NET Framework ofrecerá compatibilidad en este sentido, aunque la mayoría de usuarios que requieren tal compatibilidad también necesitan otras bibliotecas matemáticas amplias. Por su naturaleza especializada, es posible que esta solicitud de característica no se trate durante algún tiempo. ¿Por qué ha cambiado Decimal.ToString entre V1.0 y V1.1 y qué puedo hacer para que no me afecte este cambio? En general, se realizaron pocos cambios importantes entre V1.0 y V1.1. Uno de los más destacables es que Decimal.ToString cambió para conservar los ceros finales, mostrados por la cadena ToString predeterminada.
V1.0 muestra 12.246. V1.1 muestra 12.246000. Este cambio fue intencionado con el fin de cumplir el estándar ECMA CLI.
Así, se mostrará 12.246 en ambas versiones, 1.0 y 1.1. El formato G con un número significa que se aplicará formato a ese número de dígitos significativos. Como 29 es la cantidad máxima de dígitos significativos que puede tener un Decimal, esto truncará los ceros finales sin redondeos. |