es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener los lugares decimales para 10/7

Estoy intentando hacer un cálculo en el que quiero actualizar las horas ideales basándome en el número de Ayudantes y Entrenadores de cocina según si un restaurante trabaja 5 o 7 días a la semana. Cuando hago un cálculo en el que uso 10/7 o 20/7, lo toma como 1 y 2 respectivamente. Actualmente estoy usando trunc, pero he intentado usar cast :: decimal(10,6), etc. y no funciona.

¿Cómo puedo solucionar esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Te estás encontrando con un problema de división entera donde el resultado se está truncando a un número entero. Para solucionar esto, puedes convertir uno de los operandos a decimal antes de realizar la división. Aquí tienes un ejemplo:

    select 10::decimal / 7 as result;
    

    Esto te dará un resultado decimal de 1.428571.

    En tu consulta, puedes modificar la división de la siguiente manera:

    ((c.total_acs*(20::decimal/5) + c.total_hcs*(10::decimal/5)))
    

    Y

    ((c.total_acs * trunc(20::decimal/7,10)) + (c.total_hcs * trunc(10::decimal/7,10)))
    

    Esto debería darte el cálculo deseado con resultados decimales en lugar de enteros truncados.

Comments are closed.