Hi Jiangang You,
DATA: l_calc_base TYPE f.
l_calc_base = ( 2008 - 163 ) / 2000.
Result is 9.2249999999999999E-01
Números de Punto Flotante
El tipo de datos para números de punto flotante f tiene un rango de valores de 2,2250738585072014E-308 a 1,7976931348623157E+308, positivos y negativos, y el número 0, con una precisión de al menos 15 lugares decimales.
No puedes ingresar números de punto flotante directamente en tu programa. En su lugar, debes usar literales de texto que pueden ser interpretados como números de punto flotante, es decir, contienen un número en notación científica . Notación matemática o notación comercial no están permitidas a menos que puedan ser interpretadas como notación científica.
Las expresiones aritméticas con tipo de cálculo f se realizan utilizando aritmética de punto flotante . Utiliza esto si necesitas un rango de valores muy grande o estás realizando cálculos decimales, pero ten en cuenta las siguientes características de la aritmética de punto flotante.
Internamente, el exponente y la mantisa de los números de punto flotante se almacenan por separado, cada uno en dos partes. Esto puede llevar a resultados inesperados, a pesar del alto grado de precisión intrínseca. Estos ocurren principalmente al realizar conversiones desde y hacia el tipo f .
- Por ejemplo, el número 1.5 puede representarse exactamente en esta notación ya que 1.5 = 1*2**0 + 1*2**(-1), pero el número 0.15 solo puede representarse aproximadamente por el número 0,14999999999999999. Si redondeas 0.15 hacia arriba a 1 dígito válido, el resultado es 0.1 en lugar de 0.2 que esperarías. Por otro lado, el número 1,5E-12 se representa por el número 1,5000000000000001E-12, que se redondearía hacia arriba a 2E-12.
- Otro ejemplo que ocurrió en realidad es el cálculo del 7.27% de 73050 con una precisión de 2 lugares decimales. El resultado intermedio es 5.3107349999999997E+03, ya que el resultado correcto, 5310.735 no se puede representar exactamente en dos partes con 53 bits. (Si