Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

90
Vistas
Reducir número con porcentaje

Estoy tratando de implementar una verificación de código:

 const transfer = async ( amount: string ): Promise<void> => { if (parseFloat(amount) <= parseFloat('0.01')) { amount = String((2 / 100) * amount); } ....... }

En general, quiero hacer un cheque y reducir la cantidad con un porcentaje muy pequeño. Pero recibo un error para esta línea * amount); :

 TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.

¿Sabes cómo puedo solucionar este problema?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Deberías estar haciendo String((2 / 100) * parseFloat(amount)); : olvidaste convertirlo a un número para operaciones aritméticas. Además, no es necesario usar parseFloat(0.01) cuando puede usar 0.01 directamente. Su código actualizado se vería así:

 const transfer = async ( amount: string ): Promise<void> => { if (parseFloat(amount) <= 0.01) { amount = String((2 / 100) * parseFloat(amount)); } // More code here... }

Además, si desea convertir a cadena, una forma más sencilla es usar literales de plantilla:

 if (parseFloat(amount) <= 0.01) { amount = `2 / 100 * ${parseFloat(amount)}`; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Para resolver esto, ambos resultados de cadena deben convertirse a número. Esto se puede lograr mediante estos 3 métodos:

  1. Operador unario (+)
  2. parseFloat() //Ya usaste
  3. Multiplicar con número

1. Usando el operador unario (+):

 const transfer = async ( amount: string ): Promise<void> => { if (+amount <= 0.01) { amount = String(+(2 / 100) * +amount); } // More code here... }

2.parseFloat() :

 const transfer = async ( amount: string ): Promise<void> => { if (parseFloat(amount) <= 0.01) { amount = String((2 / 100) * parseFloat(amount)); } // More code here... }

3.Multiplicar con el número:

 const transfer = async ( amount: string ): Promise<void> => { if ((amount*1) <= 0.01) { amount = String((2 / 100) * (amount*1)); } // More code here... }

la mayoría de este error ocurre por demasiados corchetes. Debe probar 1 método Unary Operator (+) . ayuda a convertir una cadena en un número y no necesita envolver un valor de cadena entre corchetes.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda