¡Te damos la bienvenida a este reto!

1

¡Bienvenido al mundo de JavaScript!

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos

4

Playground - Retorna el tipo

5

Tipos de datos - pt 2

Día 2

6

Operadores

7

Hoisting y coerción

8

Playground - Calcula la propina

9

Alcance de las variables

Día 3

10

Condicionales

11

Playground - Calcula años bisiestos

12

Switch

13

Playground - Obten información de mascotas según su tipo

14

Ciclos

15

Playground - Dibuja un triangulo

Día 4

16

Arrays

17

Playground - Encuentra al michi mas famoso

18

Objetos

19

Playground - Obten el promedio de los estudiantes

Día 5 - Checkpoint

20

Playground - encuentra el palindromo más grande

Día 6

21

Reasignación y redeclaración

22

Modo estricto

Día 7

23

Debugging y manejo de errores

24

Programación funcional

Quiz: Día 7

Día 8

25

Closures

26

Playground - Crea una calculadora con closures

27

Higher order functions

28

Playground - Crea tu propio método map

Día 9

29

ECMAScript

30

TC39

Quiz: Día 9

Día 10 - Checkpoint

31

ES6

32

ES7

33

Playground - Task planner

Día 11

34

Asincronismo

35

Playground - Promesas

36

Manejando el asincronismo

37

Playground - Resuelve el callback hell usando promesas

38

Playground - Resuelve el callback hell usando async/await

Día 12

39

Arrays a profundidad

40

Métodos de arrays: Every, Find y findIndex

41

Playground - Válida el formulario

Día 13

42

Métodos de arrays: Includes, Join y concat

43

Playground - agrupa los productos

44

Métodos de arrays: Flat y FlatMap

45

Playground - Encuentra la ubicación del valor buscado

Día 14

46

Mutable functions

47

Playground - Modifica una lista de compras

48

Métodos de arrays: sort

49

Playground - Ordena los productos

Día 15 - Checkpoint

50

Playground - Sistema de reservaciones de un hotel

Día 16

51

Programación orientada a objetos en JavaScript

52

Objetos literales

53

Playground - Congela el objeto recursivamente

Día 17

54

Prototipos en JavaScript

55

Playground - Modifica el prototype de los arrays

56

Playground - Crea un auto usando clases

Día 18

57

Abstracción en JavaScript

58

Playground - Sistema de carrito de compras

59

Encapsulamiento en JavaScript

60

Playground - Encapsula datos de los usuarios

Día 19

61

Herencia en JavaScript

62

Playground - Jerarquía de animales

63

Polimorfismo en JavaScript

64

Playground - Sistema de pagos

Día 20 - Checkpoint

65

Playground - Agenda de vuelos

Día 21

66

Patrones de diseño

67

Sinlgeton y Factory pattern en JavaScript

68

Playground - Implementa singleton en un chat

Día 22

69

Adapter y Decorator pattern en JavaScript

70

Playground - Personaliza productos de una tienda

71

Builder y Protype pattern en JavaScript

72

Playground - Mejora el código usando builder pattern

Día 23

73

Facade y proxy pattern en JavaScript

74

Playground - Proxy en servicio de mensajería

75

Chain of responsability y Observer pattern en JavaScript

76

Playground - Implementación de Observador en Newsletter

Día 24 - Checkpoint

77

Playground - Crea un task manager con patrones de diseño

Día 25

78

Estructuras de datos en JavaScript

79

Playground - Crea tu propia implementación de un array

80

Hash tables en JavaScript

81

Playground - Implementación de una HashTable para Contactos

Día 26

82

Set en JavaScript

83

Playground - Remueve duplicados de una lista

84

Maps en JavaScript

85

Playground - Crea un organizador de tareas

Día 27

86

Singly Linked List en JavaScript

87

Playground - Agrega métodos a la singly linked list

88

Playground - Implementación de una singly linked list

Día 28

89

Stacks en JavaScript

90

Playground - Crea un stack para una playlist

Día 29

91

Queues en JavaScript

92

Playground - Crea una cola de emails

Día 30

93

¡Lo lograste!

Live Class

94

30 días de JS con Juan DC

95

30 días de JS con Nicobytes

96

30 días de JS con GNDX

97

30 días de JS con LeoCode

98

30 días de JS con Teffcode

99

Sesión: Cierre de los 30 días de JavaScript

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
2 Hrs
23 Min
17 Seg

Playground - Calcula la propina

8/99

Aportes 118

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¡Hola tú! Teniendo en cuenta que en el anterior playground LeoCode dejó un texto y una imagen para evitar que te comas un spoiler del ejercicio, yo haré lo mismo en este ejercicio adelantandome un poco a LeoCode, así que… Ten tu imagen random, ¡Pero hey! también dejaré la solución al final, así que si no has hecho el ejercicio y no quieres ver la solución aún No leas lo que hay después de la imagen

Listo, luego de la advertencia, como quizás sepas (Y si no sabes, lo sabrás pronto 😉😉), para obtener el porcentaje de un valor, puedes realizarlo como de dos maneras fáciles desde mi punto de vista, solo recuerda que un 10% significa un 0.1, un 50% significa un 0.5 y un 5% significa un 0.05, teniendo esto claro vamos con la primera opción:

  1. Multiplicando el valor del cuál quieres obtener con el porcentaje pero no en el valor de porcentaje, sino con el valor decimal, es decir, si es 55%, lo multiplicas por 0.55. ¡Listo! ¿Pero como se haría con código? Podrías simplemente hacer una conversión de un dato que converta un 50 a un 0.50, ejemplo, 50 dividido en 100, conviertes el dato a decimal, siendo un 0.50, en código, sería así:
export function calculateTip(billAmount, tipPercentage) {
  const newPercentage = tipPercentage / 100;
  return (billAmount * newPercentage)
}

Muy bonito, pero, ¿Y la segunda forma?

  1. Sencillito, solo aplica esta formula (compra * porcentaje) / 100, con esto no necesitas modificar el valor del porcentaje como en la primera solución, es decir, en código sería así:
export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage)/100
}

¡Suerte en tu reto!

Creo que me gano otro estudiante, pero de igual manera aquí tienen mi
.

🛡️🛡️🛡️Escudo anti spoilers🛡️🛡️🛡️

Este texto que estás viendo en este momento no tiene ningún significado, simplemente es un aporte para poder esconder las soluciones de otros y otras estudiantes de la comunidad. **Nos encanta que dejen sus posibles y distintas soluciones a este problema ** pero no queremos frustrar a quienes vienen después a realizar este ejercicio.
.
Se estarán topando con este y otros mensajes (de mi o de otros estudiantes) con un proposito en particular, hacer más agradable su experiencia.
.
Sin más, dejo aquí una imagen aleatoria para después poner la explicación de la solución dada.

Explicación

Esto es álgebra básica, existen multiples formas de calcular el porcentaje pero la que elejimos para este ejercicio fue la más simple agarrar el número que recibimos como porcentaje de la propina y dividirlo entre 100.
.
De esta manera, al dividir un número menor de 100 entre 100, siempre obtendremos un decimal.
.
Tomando el ejemplo de la guía, 10 / 100 = 0.1
.
Después solo es cuestión de multiplicar el total por ese valor y obtenemos la propina que debemos dar 0.1 * 100 = 10
.
Y podemos tener una solución tan coqueta como la siguiente

function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage / 100)
}

Lo hermoso de la programación:

Es que no hay una sola respuesta absoluta. Me contenta tener una solución distinta a mis compañeros 💚

Recomendación: No sé si fui el único pero siento que le faltó un poco más de redacción a la explicación.

La explicación de Leo es más clara. Deberían colocar esa 👍

Sabías que…

Big.js es una biblioteca JavaScript que proporciona aritmética decimal de precisión arbitraria. Esta biblioteca permite realizar operaciones matemáticas con números de cualquier tamaño, sin perder precisión debido a la limitación de la aritmética de punto flotante de JavaScript.

La aritmética de punto flotante es el estándar utilizado por la mayoría de los lenguajes de programación, incluido JavaScript. Sin embargo, esta aritmética tiene limitaciones en cuanto a la precisión y el rango de los números que se pueden representar. En algunos casos, esto puede dar lugar a resultados incorrectos debido a errores de redondeo.

Big.js resuelve este problema al proporcionar una implementación de aritmética decimal que puede manejar números con cualquier cantidad de dígitos, sin limitaciones de precisión o rango. Esto es particularmente útil para aplicaciones financieras o científicas que requieren un alto nivel de precisión en los cálculos.


Solución:

/**
 * @param {number} bill - Bill amount
 * @param {number} tip - Tip percentage
 * @returns {number} - Tip amount
 */
export const calculateTip = (bill, tip) => bill * tip / 100

Buenas aca dejo mi aporte, hice una validación al inicio ya que en la consigna decia que los valores iban a ser positivos, por lo tanto valide que estos sena mayores que 0

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    let propina;
    propina = billAmount * tipPercentage / 100;
    return propina;
  }    
}

Estaba viendo las soluciones y me doy cuenta que nadie ha hecho validaciones de los valores que recibe la funcion. Recuerden siempre validar que los valores que ingresan a sus funciones son los valores esperados. En este caso que sean numeros > 0

Hola! Voy poniéndome al día con los retos.

Asumiendo que los valores de la cuenta y propina deben ser siempre positivos, decidí agregar al final un mensaje en caso de que el usuario ingrese números negativos en mi respuesta:

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    return billAmount * (tipPercentage / 100);
  }
  else { 
    return "El valor de la cuenta/propina no puede ser negativo.";
  }
}

Por aca les dejo mi apote

Aqui mi respuesta

export function calculateTip(billAmount, tipPercentage) {
  let tip = billAmount * tipPercentage / 100;
  return tip
}

Mi solucion al reto:

Realice el ejercicio de esta manera pero al ejecutar las pruebas me dio error sin embargo en la consola del navegador al poner los parámetros me dio los resultados correctos o de plano me faltó o hice algo mal. ```js function calculateTip(billAmount, tipPercentage) { const percentaje = (tipPercentage * billAmount)/100; return percentaje; } ```function calculateTip(billAmount, tipPercentage) { const percentaje = (tipPercentage \* billAmount)/100; return percentaje; }

Mi código utilizando propiedades de Matemática. EL valor absoluto de cualquier número, será positivo. Es decir, |-5|=5. Math.abs(-5)–>rta: 5.

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  var propina = Math.abs(billAmount * (tipPercentage/100));
  return propina;
}

Dejo mi solución, distinta a todas las que pude ver hasta el momento.
Por las dudas me extiendo en el texto para que no se vea a primera vista
export function calculateTip(billAmount, tipPercentage) {
return (billAmount * tipPercentage) / 100;
}

lo que piden en los ejercicios debe ser mas claro y conciso para los que estamos empezando. solo están reflejados los ejercicios para los que están mas avanzados no es justo.

export function calculateTip(billAmount, tipPercentage) {
let tip = billAmount * tipPercentage / 100;

return tip;
}

//Declaramos la variable tip para realizar el return tip.

Yo lo hice muy breve.

export function calculateTip(billAmount, tipPercentage) {
// Tu código aquí 👈

let resultado = (tipPercentage / 100) * billAmount;
return resultado;

}


😄

Yo lo hice de esta manera

export function calculateTip(billAmount, tipPercentage) {
return billAmount * tipPercentage / 100;
}
console.log(calculateTip(100, 10));
console.log(calculateTip(1524.33, 25));

este es mi aporte :

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  const porcentaje = tipPercentage / 100;
  const resultado = billAmount * porcentaje;
  return resultado
}

}

export function calculateTip(billAmount, tipPercentage) {
// Tu código aquí 👈
const tip = billAmount * tipPercentage / 100
return tip
}

¿Y mi propina?

Dejame ver cuanto es:

export function calculateTip(billAmount, tipPercentage) {
  if (typeof billAmount == "number" && typeof tipPercentage == "number") {
    if (billAmount >= 0 && tipPercentage >= 0) {
      return (billAmount * tipPercentage) / 100;
    }
    else {
      console.error("Deben ser números positivos");
    }
  }
  else {
    console.error("Ingresa datos numéricos");
  }
}
calculateTip(100, 10);
calculateTip(1524.33, 25);

Me había faltado contemplar la condicional jejeje, pero ya quedó 😃

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (billAmount >= 0 && tipPercentage>= 0 ) {
    return billAmount * (tipPercentage / 100);
  } else {
    return "El valor no puede ser negativo";
  }
}

console.log(calculateTip(1524.33, 25));
console.log(calculateTip(100, 10));```

Por aca mi aporte basado en los operadores de asignacion explicados:

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  var tip = tipPercentage /= 100;
  return billAmount *= tip;
}

Mi solución:

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount > 0) {
    let total = (tipPercentage / 100) * billAmount;
    return total;
  }
  return 0;
}

calculateTip();

Escudo anti-spoilers

function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage / 100);
}

console.log(calculateTip(100, 10));
console.log(calculateTip(1524.33, 25));
console.log(calculateTip(0, 0));

Listo

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage/100);
}

//Comparto mi solución:

export function calculateTip(billAmount, tipPercentage) {
// Tu código aquí 👈
var res = 0;
if (!billAmount) {
return 0;
}
else {
if (!tipPercentage) {
res = billAmount;
}
else {
var res = billAmount * (tipPercentage / 100);
}
}
return res;
}

console.log(calculateTip(1524.33, 25));

//Toda la retro será bien recibida para mejorar.
//Saludos a todos!

Mi solución

function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  var result
  let decimal = "0." + tipPercentage
  result = billAmount * decimal
  return result
}


.
.
.
.
.
.

function calculateTip(billAmount, tipPercentage) {
    return (billAmount / 100) * tipPercentage;
}
export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  let propina = billAmount * (tipPercentage / 100);
  return propina;
}

En la implementación de la función, se usa la fórmula para calcular la propina que es billAmount * (tipPercentage / 100). Esta fórmula calcula la propina en función del costo total de lo consumido y el porcentaje de propinar a dejar.

Luego, se devuelve el resultado obtenido por esta fórmula. Al devolver el resultadom la función cumple con el requerimiento de devolver el valor de la propina como un número.

Al pasar los ejemplos dados en el enunciado del reto, se comprueba que la función devuelve a los valores esperados y por lo tanto, la solución es correcta.

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage / 100);
}
export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100
}

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
 return typeof billAmount === 'number' && typeof tipPercentage === 'number' ? 
  billAmount * (tipPercentage / 100) : 'null' 
}

)

return billAmount * (tipPercentage/100)

function calculateTip(billAmount, tipPercentage) {
const SonNumbers = (typeof (billAmount) === “number” && typeof (tipPercentage) === “number”);
const EsMayor = (billAmount >= 0 && tipPercentage >= 0);
if ( SonNumbers && EsMayor ) {
return billAmount * (tipPercentage/100);
}
}

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage/100);
}

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (billAmount > 0 && tipPercentage > 0) {
    return billAmount * (tipPercentage / 100) 
  } else {
    return 0;
  }
}
calculateTip(100, 10);
calculateTip(1524.33, 25);
calculateTip(0, 0);

Hola que tal! No si estoy en lo correcto, pero esta fue mi solución:

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (billAmount > 0 && tipPercentage > 0) {
    let valorPropina = (tipPercentage / 100) * billAmount;
    return valorPropina;    
  } else {
    return 0;
  }
}

mi solucion

export function calculateTip(billAmount, tipPercentage) {
  let propina = (billAmount / 100) * tipPercentage;
return propina
}

Hola gente, aquí les dejo mi aporte sobre como solucione el problema:

export function calculateTip(billAmount, tipPercentage) {
    let resultado;

    if (billAmount >= 0 && tipPercentage >= 0) {
      resultado = (billAmount * tipPercentage) / 100;
      return resultado;
    }
    else {
      console.log("Por favor, introduzca valores mayores a 0");
    }
    console.log(resultado);
  }

En los personal, creo que me excedí con lo de “Tiene que ser mayor a 0” Jajaja

Revise la solución que propone Platzi y me voló la cabeza con lo simple que pudo haber sido Jajaja

Nada mas queda seguir aprendiendo y nunca parar de aprender. Saludos.

SI EMPEZARON TARDE COMO YO NO SE DESANIMEN >:D

Esta es la solución que realicé para este playground, :3

export function calculateTip(billAmount, tipPercentage) {

  let result = null;

  // we calculate the % of the tip
  const percentage = tipPercentage / 100;

  // we calculate the amount of the tip
  result = billAmount * percentage;

  return result;
}

export function calculateTip(billAmount, tipPercentage) {
return propina = billAmount * tipPercentage / 100

}
calculateTip(150000, 5)
console.log(propina)

otra forma de solucionarlo…
.
.
.
.
.
.
.

function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100
}

En esta pantalla del ejecicio… le falto el boton… de avanzar al siguiente capitulo o leccion.

Aca les dejo mi solucion, si lo van a ejecutar en el navegador les sugiero que agregen un console.error luego de los return del if

export function calculateTip(billAmount, tipPercentage) {

  if (typeof billAmount !== "number" || typeof tipPercentage !== "number") {
    return ("Debes introducir numeros")
  } else if (billAmount < 0 || tipPercentage < 0) {
    return ('Los parámetros deben ser positivos');
  }
  return billAmount * (tipPercentage / 100)
}
calculateTip(-10, 10)
  1. export function calculateTip(billAmount,tipPercentage) {
    return (billAmount*(tipPercentage*0.01))
    }

oigan como como puedo comentar una imagen disculpen

Mi solución fue usar la más sencilla y bonita que se me ocurrió.

export function calculateTip(billAmount, tipPercentage) {
  let calcPercent = (tipPercentage / 100) * billAmount;
  return calcPercent
}

export function calculateTip(billAmount, tipPercentage) {
return billAmount * (tipPercentage / 100);
}

calculateTip(1524.33, 25)

Aquí les dejo mi aporte con el código más corto que logre hacer.

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * (tipPercentage/100)
}

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100;
}

Hecho

export function calculateTip(billAmount, tipPercentage) {
  return tipPercentage/100*billAmount
}

Mi solucion!!!

export function calculateTip(billAmount, tipPercentage) {
  let result = tipPercentage * billAmount / 100;

  return result;
}

El spoiler!
export function calculateTip(billAmount, tipPercentage) {
// Tu código aquí 👈
let result = (billAmount * tipPercentage) / 100;
return result;
}

calculateTip(100, 10);

Aquí mi solución, leyendo las aportaciones de los demás, entiendo que lo correcto es hacer validación de los inputs, pero me agradó que todo quedara en una línea.

export function calculateTip(billAmount, tipPercentage) {
return billAmount*(tipPercentage*0.01)
}

export function calculateTip(billAmount, tipPercentage) {
// Tu código aquí 👈
let cuentatotal = billAmount * (tipPercentage / 100);
return cuentatotal;

}

calculateTip(100, 10)

export function calculateTip(billAmount, tipPercentage) {
  let result = billAmount * tipPercentage / 100
  return result
}

Aquí dejo mi aporte.

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  let propina = 0;
  if ((typeof (billAmount) === "number") && (typeof (tipPercentage) === "number")) {
    if (billAmount >= 0 && tipPercentage >= 0) {
      propina = (billAmount * tipPercentage) / 100;
    }
  }

  return propina;
}

Viendo los aportes de otros compañeros pienso que pude haber simplificado demasiado la tarea. Es una sola línea de código, no sé si esto sea algo malo o por mejorar

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100;
}

export function calculateTip(billAmount, tipPercentage) {
  let propina = billAmount * tipPercentage / 100;
  return propina;
}

Aporte de mi código

export function calculateTip(billAmount, tipPercentage) {
  let propina = billAmount * (tipPercentage / 100);
  return propina;
}

export function calculateTip(billAmount, tipPercentage) {
  const ValorPropina = billAmount * tipPercentage / 100
  return(ValorPropina)
}

Holii, por acá mi aporte.

export function calculateTip(billAmount, tipPercentage) {
  let tipResult = 0; // declare otra variable para el resultado
  if (billAmount > 0) {
    tipResult = (billAmount * tipPercentage) / 100; //esta formula es para calcular el tip
    return tipResult // imprime el resultado
  } else {
    alert("Ingrese un monto válido"); //si no cumple con la condición, pedimos otro monto
  } return tipResult
}
export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100;
}

Hola, aquí está mi aporte:

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount > 0) {
    let propina = (tipPercentage / 100) * billAmount; 
    return propina;
  } else {
    return "Para recibir propina el consumidor debe comprar algo";
 }
}

Mi solución:

My solution

export function calculateTip(billAmount, tipPercentage) {
  return Number((billAmount * tipPercentage) / 100);
}

Solución… 😄

export function calculateTip(billAmount, tipPercentage) {
  return billAmount * tipPercentage / 100
}

Mi solucion…
Aprendiendo ando …
Gracias


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

me esta gustando estos retos, primero porque hice el curso básico de JS sin embargo ha sido complejo adaptarme a colocar el var, o let antes de las variables así que en mi primer intento falle por no colocarlos

function calculateTip(billAmount, tipPercentage) {
    let tip=billAmount*(tipPercentage/100);
    return tip;
}
export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  return billAmount * tipPercentage / 100
}

Mi aporte de hoy:

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (typeof (billAmount) == 'number' && typeof (tipPercentage) == 'number') {
    if (billAmount >= 0 && tipPercentage >= 0) {
      return (billAmount * tipPercentage) / 100;
    }
  }
  return null;
}

Mi solucion al reto!

export function calculateTip(billAmount, tipPercentage) {
  if (billAmount >= 0 && tipPercentage >= 0) {
    return billAmount * tipPercentage / 100;
  } else {
    return("No se puede hacer la operacion papito")
  }
}

Uff esta si me costo, pero aquí esta la solución

export function calculateTip(billAmount, tipPercentage) {

//se calcula por una regla de 3 simple que se expresa usando operadores
  var tipAmount = billAmount * (tipPercentage / 100);
  resultado=console.log(tipAmount);

  return resultado;
}

calculateTip(254, 10); 
//al llamar la función se le pasa como primer argumento el total de la cuenta y como segundo el porcentaje de propina

Solución Día #2

export function calculateTip(billAmount, tipPercentage) {
  // Día 2 💚
  return (billAmount * tipPercentage) / 100;
}

Acá les va mi solución:

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  return billAmount * (tipPercentage / 100)
}

Es muy similar a algunas que he visto en los comentarios uwu

.
.
.
.
.
.
.
.
.
.
.
.

export function calculateTip(billAmount, tipPercentage) {
 return(billAmount * tipPercentage / 100)
}

calculateTip(100, 10)

Este fue mi error de hoy, lo comparto para que vean que no son los únicos que se pueden equivocar. Decidí resolverlo aplicando lo que Álvaro aportó.

export function calculateTip(billAmount, tipPercentage) {
  let tip = billAmount * 100 / tipPercentage;
  return tip
}

La forma en la que ahora lo resuelvo es esta:

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage)/100
}

Mi solución y explicación 👇

export function calculateTip(billAmount, tipPercentage) {
  let valueAmount = 0; //inicialización de variable
  if (typeof billAmount === 'number' && typeof tipPercentage === 'number') {
    //se evalúa "number" así porque sino se escribe con comillas dobles o simple en la condición JavaScript lo interpretará como un variable o constante, y como estamos evaluando que los parámetros sean de tipo number se coloca así
    valueAmount = billAmount * tipPercentage / 100; //valor de propina
  }
  return valueAmount;
}

export function calculateTip(billAmount, tipPercentage) {

if (billAmount >= 0 && tipPercentage >= 0) {

let valorPropina = billAmount * tipPercentage / 100;
console.log("El valor de propina es: " + valorPropina);
return valorPropina;

} else {

console.log("El valor ingresado es negativo");

}
}

¡Hola, Platzinauta!
Objetivo
En este desafío tendrás que calcular la propina que deben dejar los clientes de un restaurante en función de su consumo
Mi solución,
Se detalla hasta abajo.⬇


































export function calculateTip(billAmount, tipPercentage) {
 //@autor: dmos
  let percenValid = (tipPercentage != 0) ? tipPercentage / 100 : 0;
  return (billAmount * percenValid);
}

Mi codigo quedo así
.
.
.
.
.l
.
.
.
.
.
.
.
.
.
.
.
.
.

Como ley de las matemáticas se comienza por * y luego /, si no pongo los () igual hubiera multiplicado primero y luego el resultado lo hubiera dividido.

export function calculateTip(billAmount, tipPercentage) {
return (billAmount * tipPercentage) / 100
}

export function calculateTip(billAmount, tipPercentage) {
if (typeof (billAmount) === “number” && typeof (tipPercentage) === “number”)
{
if (billAmount >= 0 && tipPercentage >= 0 && tipPercentage <= 100) {
return (billAmount * (tipPercentage / 100));
} else {
return (“No se permiten numeros negativos o propinas mayores a 100%”);
}
} else {
return (“Por Favor ingrese solo numeros”);
}
}

Dejo mi solución a este ejercicio:

export functioncalculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (typeof billAmount !== 'number' || typeof tipPercentage !== 'number') {
    return ('Los parámetros deben ser números');
  }

  if (billAmount < 0 || tipPercentage < 0) {
    return ('Los parámetros deben ser positivos');
  }

  const tipAmount = billAmount * (tipPercentage / 100);
  returnMath.round(tipAmount * 100) / 100;
}

Hoy muchas formas de calcular el porcentaje, utilice una formule que encontre en internet

export function calculateTip(billAmount, tipPercentage) {
  return ((billAmount * tipPercentage) / 100);
}

export function calculateTip(billAmount, tipPercentage) {
let propina = ((billAmount / 100) * tipPercentage);
return propina;
}

console.log(calculateTip(100, 10));
console.log(calculateTip(1524.33, 10));

Este es mi codigo, saludos

function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  let b = tipPercentage * 1e-2;
  let a = billAmount * b;
  return a;
}

Comparto mi codigo espero les ayude.

Hola. Les comparto un oneliner 😃

export const calculateTip = (b, t) => b * t / 100;

Se basa en las arrow function expressions. La arrow ()=>{} se asigna a la variable calculateTip. No requiere return o llaves porque es de return automático. Luego reemplazo los nombres por letras (ojo: esto no es tan buena práctica jeje)

Comparto mi solucion

export function calculateTip(billAmount, tipPercentage) {
  return (billAmount * tipPercentage) / 100
}

Hola a todos les comparto mi codigo:

if (billAmount >= 0 && tipPercentage >= 0) {

  let propina;
  propina = billAmount * (tipPercentage / 100);
  console.log(propina);

}

}
calculateTip(100, 10)

No es por desconfiar del ejercicio pero agregé una validación para comprobar que fuera type number los parametros

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (typeof billAmount === "number" && typeof tipPercentage === "number") {
    const tip = (billAmount * tipPercentage) / 100
    return tip
  }
}

Hice este código que valida que no ingresen un String y que el número sea positivo, si todo esta bien hace el cálculo XD

export function calculateTip(billAmount, tipPercentage) {
  // Tu código aquí 👈
  if (typeof billAmount === String || tipPercentage === String) {

    console.log("El tipo de dato debe ser un número.")

  } else if (billAmount < 0 || tipPercentage <0) {
    console.log("El número debe ser positivo.")
  }

    return (billAmount * tipPercentage / 100);

}

Aqui esta mi reto:

Para calcular la propina, primero debemos asegurarnos de que el tipo de dato que ingresemos sea un número positivo y eso lo logramos generando una condicional que primero nos verifique si los parámetros son números (por medio de NaN) y luego verificando que sean números positivos.

export function calculateTip(billAmount, tipPercentage) {
  // Verificamos si los parámetros son números
  if (isNaN(billAmount) || isNaN(tipPercentage) || billAmount < 0 || tipPercentage < 0) {
    return ('Los parámetros deben ser números positivos');
  }
  // Retornamos el valor de la propina redondeada a 2 decimales
  return Math.round((billAmount * tipPercentage / 100) * 100) / 100;
}

Estamos haciendo una operación matemática para calcular el valor de la propina, redondeándola a dos decimales utilizando la función Math.round().
.
Veamos el orden de las operaciones:
.

  • Primero multiplicamos billAmount (el costo total de la factura) por tipPercentage (el porcentaje de propina). Al hacer esto, obtenemos el valor de la propina en sí.
  • Dividimos el resultado anterior entre 100 para obtener el valor decimal de la propina.
  • Multiplicamos el resultado anterior por 100 para “mover” los decimales a dos lugares hacia la derecha, convirtiendo así la propina en un número entero.
  • Redondeamos el resultado de la propina con la función Math.round().
  • Finalmente, dividimos el resultado de la propina entre 100 de nuevo para “mover” los decimales a dos lugares hacia la izquierda, devolviendo así la propina como un número decimal con dos decimales.
    .

La razón por la que hacemos todo esto es para asegurarnos de que la propina devuelta tenga únicamente dos decimales, en lugar de varios decimales después de la coma. Esto es especialmente importante si estamos trabajando con dinero, ya que queremos asegurarnos de que los cálculos se manejen con precisión.

Me di cuenta de que no sé sacar porcentajes ni calcular una propina. T-T

Hola

Por aqui dejo mi resultado

export function calculateTip(billAmount, tipPercentage) {

  if (typeof (billAmount) === "number" && typeof (tipPercentage) === "number") {
    if (billAmount >= 0 && tipPercentage >= 0) {
      return (billAmount * (tipPercentage / 100));
    } else {
      return ("No se permiten numeros negativos");
    }
  } else {
    return ("Por Favor ingrese solo numeros")
  }
}
undefined