|
Post by cortez on Sept 25, 2024 16:14:26 GMT
Error en números con exponenete negativo de base 10 en QB64 (versión de escritorio en Windows) QB64 x32 y x64 bits
Cls Dim x As String Dim y As Single
Input x 'Aquí se debera introducir un número como por ejemplo 1E-6, 10E-6 o 100E-6. En el primer caso no exixte error pero si en los demás. y = Val(x) Print y End
Si se entroduce 1E-6 el resultado es .000001 Si se entroduce 10E-6 el resultado es .0000001 (ERROR)
Si se entroduce 100E-6 el resultado es .00000001 (ERROR)
He probado desde la versión 1.5 hasta la última de QB64 y en todas esas se encuentra el mismo error. Tambien he probado en QBASIC 1.1 (original), FreeBasic, QuickBASIC (PDS) y también en QBJS (en linea) y el error no exixte en estas versiones.
|
|
|
Post by bplus on Sept 25, 2024 17:14:19 GMT
get v 2.1 Attachments:
|
|
|
Post by cortez on Sept 25, 2024 17:49:29 GMT
En el caso de solo mostrar valores como en el ejemplo que hace usted no existe problema, el problema surge al introducir usando INPUT, le invito a copiar y verificar el código de ejemplo que publiqué, observará que con valores positivos no exixte problema en todas las versiones pero si existe problema con valores negativos en la version de escritorio, también estoy usando la versión 2.1. Al parecer puede ser un problema en la instrucción VAL(). El problema surge en que el algun momento se deberá convertir texto a número es por eso que se usa String en la declaración de variables.
|
|
|
Post by bplus on Sept 25, 2024 18:07:38 GMT
Yeah so it doesn't work with your code.
|
|
|
Post by cortez on Sept 25, 2024 18:14:23 GMT
Yeah so it doesn't work with your code. Sí, pero irónicamente si funciona en qbjs.org/también intente de manera directa probando valores solo usando PRINT
Cls Print Val("1E6") Print Val("10E6") Print Val("100E6") Print Val("1E-6") Print Val("10E-6") Print Val("100E-6")
En la versión de escritorio tiene el problema que le comente, pero todo sale bien en qbjs.org/Gracias por tratar de ayudar.
|
|
|
Post by bplus on Sept 27, 2024 12:03:42 GMT
Wait! Doesn't Proper Scientific Notation require the left number to be between >= 1.00... and < 10.00... ?
|
|
|
Post by bplus on Sept 27, 2024 14:19:59 GMT
Yes! Val() requires proper Scientific Notation and apparently Print (number value) doesn't.
All correct when use Proper Sci Notation! First number between >= 1 and < 10, second number use + for positive powers of 10.
Print Val("1.1E+6") Print Val("1.01E+7") Print Val("1.001E+8") Print Val("1.E-6") Print Val("1.1E-5") Print Val("1.01E-4")
|
|