Red de conocimiento informático - Problemas con los teléfonos móviles - Problemas con el control de cheques en el programa vb

Problemas con el control de cheques en el programa vb

Esto se debe a que declaraste tanto s como i como variables enteras (Integer). Deberías saber qué es un número entero, ¿verdad? Es un número sin decimales. VB eliminará automáticamente los decimales de s e i (cualquier valor mayor que 0,5 se redondeará a 1), por lo que s=s+0,9 es lo mismo que s=s+1. ¡i=i+0.6 también es lo mismo que i=i+1!

Además, palabras como s=s e i=i parecen tontas y son completamente innecesarias.

Cambiar a esto: Private?Sub?Command1_Click()

Dim?n?As?Integer,?s?As?Single están configurados en números de punto flotante de precisión simple, por lo que que se admiten decimales

El valor inicial de s?=?0's es 0, por lo que esta línea se puede eliminar

For?n?=?0?To?24

If?Check1(n).Value?=?1?Then'Solo necesitas juzgar = 1, y si es 0, no hay necesidad de procesarlo

s?= ?s?+?0.9

End?If

Next?n

Dim?i?As?Single'i también está configurado con precisión simple número de punto flotante. Además, la n definida anteriormente se puede usar repetidamente y no es necesario declarar m

i?=?0'. De la misma manera, esta línea también se puede eliminar

<. p>For?n?=?0? To?24

Si?Check2(n).Value?=?1?Then'Igual que arriba

i?=?i ?+?0.6

Fin ?If

Siguiente?n

jstxt.Text?=?(s?+?i)?/?25

Además, si el programa necesita optimizarse para El más simple puede ser así: Private?Sub?Command1_Click()

Dim?n?As?Integer,?s?As ?Único,?i?Como?Único

Para? n?=?0?A?24

Si?Check1(n).Valor?=?1?Entonces?s ?=?s?+?0.9

Si?Check2 (n).Valor?=?1?Entonces?i?=?i?+?0.6

Siguiente?n

jstxt.Text?=?(s?+?i )?/?25 También hay uno más simple: Private?Sub?Command1_Click()

Dim?n?As? Entero,?s?As?Single,?i?As?Single

Para?n?=?0?To?24

s?=?s?+?0.9? *?Check1(n).Value

i?=? i?+?0.6?*?Check2(n).Value

Siguiente?n

jstxt.Text?=?(s?+?i)?/?25 El último. ¡Si puedes ver cómo funciona por ti mismo, mejorará enormemente tus habilidades de programación!