¿Es posible aumentar la precisión del número de coma flotante?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola.¿Hay alguna manera de especificar la precisión de coma flotante que usa JSL al realizar cálculos?Es decir, el número de dígitos significativos utilizados.Por ejemplo, en mi computadora 1 menos 1e-15 es igual a 0.999... (15 "9").Pero si intento 1 menos 1e-16, solo obtengo 1.
x = 1;
y = 1e-15;
z = x - y;
Mostrar (z); //z = 0.999999999999999 (también conocido como 15 lugares decimales)
y = 1e-16;
z = x - y;
Mostrar (z); //z = 1
Gracias.
Re: ¿Es posible aumentar la precisión del número de punto flotante?Aquí está el script completo que ejecuté para darle los resultados que publiqué.
X = 1 ;
y = 1e-15 ;
z = X - y ;
Espectáculo ( z ) ; //z = 0.999999999999999 (también conocido como 15 lugares decimales)
y = 1e-16 ;
z = X - y ;
Espectáculo ( formato ( z , "Diciembre fijo" , 30 , 20 )) ;
Ejecuté el script en 11.21.1 y obtuve los resultados que informó.Así que la diferencia es el cambio a la versión 12.2.
Re: ¿Es posible aumentar la precisión del número de coma flotante?Hola de nuevo Jim.También se dio cuenta de otra pregunta importante.En tu publicación indicaste que el resultado del problema 1 menos 1e-16 fue:
0.999999999999999 8 9000
(Tenga en cuenta el "8" en el lugar decimal 16)
¿Fue esto un error tipográfico?
Re: ¿Es posible aumentar la precisión del número de punto flotante?Jim,
Lo siento, pero eso no parece funcionar en mi sistema.Usé el comando de formato y la respuesta aún salió como "1".Obviamente funciona en su sistema, pero no en el mío.Mi empresa todavía nos tiene usando JMP 11.2.1, si eso importa.Sin embargo, mi computadora tiene menos de 1 año.
Pregunta: la documentación de Format es un poco confusa.
s = Formato (x, cadena de formato, , , < <)
En base a eso, el "20" en su comando ocupa el campo de código de moneda y el "30" ocupa el campo ndecimal.Naturalmente, me preocupo por esto último.¿Cuál es el propósito del "20"?
Re: ¿Es posible aumentar la precisión del número de punto flotante?JMP utiliza el soporte de punto flotante de hardware estándar.Punto flotante IEEE - Wikipedia, la enciclopedia libre
Hay alrededor de 15 dígitos significativos, como habrás notado.
JMP no tiene soporte para representaciones más largas.(Las bibliotecas Big Int, Big Num no están en JMP en este momento)
Como txnelson señala, a veces un formato predeterminado para imprimir un número puede no mostrar los 15 o más dígitos posiblemente interesantes.
Re: ¿Es posible aumentar la precisión del número de punto flotante?Lo que está viendo es que JMP intenta mostrar los datos en un formato amigable predeterminado.La precisión detrás del valor no cambia cuando se especifica un formato para mostrar el valor.Entonces, si especifica mostrar el valor de "z" con más precisión, lo hará.
Mostrar (formato (z, "diciembre fijo", 30, 20)); = "0.99999999999999989000";