True para numeros enteros, False para numeros decimales

Tengo una consulta que debe ser sencilla creeré pero no se como hacerlo

Tengo un campo que siempre tiene que ser divisible por otro y para que siga al próximo paso tiene que ser un entero si o si

Necesito dos funciones

-----------------------------------------------------------------------------------------------------------------

La primera es la del titulo

Tengo el campo 1 y 2 de 25 y 5 el resultado es 5 es entero y permite continuar

Si es 24 y 5 no entero y obliga a hacer un redondeo (en este caso seria 1) para que de los 25 divisible

--------------------------------------------------------------------------------------------------------------

La segunda función es que me de por defecto en el campo redondeo el numero más cercano para que sea divisible y de el entero

Osea que si vamos al ejemplo anterior es 1

Si fuera 23 y 5 los valores me de 2

si fuera 21 y 5 me de -1

-----------------------------------------------------------------------------------------------------------------

NOTA :Si o si necesito ese valor en el campo redondeo ya que todo esto esta realizado para empaquetar producciones de cada producto según lo que se estipula, y e valor de redondeo es movimiento de stock de un deposito a otro que tiene todo por números redondos

2 respuestas

Respuesta

Espero haber entendido:

PRIMERA FUNCIÓN

Function entero(num1 As Integer, num2 As Integer) As Boolean

Dim intresultado As Integer
intresultado = num1 Mod num2
If intresultado = 0 Then
entero = True
Else
entero = False
End If
End Function

Ejemplo de llamada:

?entero(23,5) ---- retorna False

SEGUNDA FUNCIÓN

Function mas_cercano(num1 As Integer, num2 As Integer) As Integer

Dim intresultado As Integer
intresultado = num1 Mod num2

If intresultado <> 0 Then
mas_cercano = num2 - intresultado
Else
mas_cercano = 0
End If

End Function

Ejemplo de llamada:

¿

? Mas_cercano(23,5) ---- retorna 2

Respuesta

Para conocer si una división tiene resto (es entera o tiene decimales) se compara la división 'normal' con la misma división entera:

Num1/Num2 = Nun1\num2


Si la división no es entera, localizar el valor superior necesario para obtener una división entera se logra calculando la división entera, al resultado se le añade una unidad y este valor se multiplica por el divisor.

((Num1\num2) +1) *Num2

SI al resultado obtenido se le resta el dividendo (Num1) se obtiene el numero de unidades que los diferencia.

¡Gracias! Con la función termine de solucionar todo

Lo solucione más fácil, a la función que me diste le resto la unidades y me da el valor restante ms cercano, y me vino mejor por que puedo agregar o quitar depende la circuntancia que necesite guardar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas