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

526
Vistas
Cómo mostrar números con 2 decimales en React Native

Estoy creando una aplicación de calculadora para ayudar con los decimales y me gustaría algo con dos decimales como a continuación:

 number output ------ ------- 1 1.00 1.446 1.45 1.567 1.57

Intenté usar toFixed (2) pero aparece un error porque estoy usando matemáticas y no cadenas.

También intenté usar toPrecision(4) pero también recibo un error

Cualquier ayuda sería realmente apreciada.

 import React from 'react'; import {StyleSheet, Text, View, TouchableOpacity, Vibration} from 'react-native'; import {useState} from 'react'; import { Entypo } from '@expo/vector-icons'; export default function App() { const [darkMode, setDarkMode] = useState(false); const [currentNumber, setCurrentNumber] = useState(''); const [lastNumber, setLastNumber] = useState(''); const buttons = ['C', 'DEL', '/', 7, 8, 9, '*', 4, 5, 6, '-', 1, 2, 3, '+', 0, '.', '='] function calculator() { let lastArr = currentNumber[currentNumber.length-1]; if(lastArr === '/' || lastArr === '*' || lastArr === '-' || lastArr === '+' || lastArr === '.') { setCurrentNumber(currentNumber) return } else { let result = eval(currentNumber).toString(); setCurrentNumber(result) return } } function handleInput(buttonPressed) { if(buttonPressed === '+' || buttonPressed === '-' || buttonPressed === '*' || buttonPressed === '/') { Vibration.vibrate(35); setCurrentNumber(currentNumber + buttonPressed) return } else if (buttonPressed === 1 || buttonPressed === 2 || buttonPressed === 3 || buttonPressed === 4 || buttonPressed === 5 || buttonPressed === 6 || buttonPressed === 7 || buttonPressed === 8 || buttonPressed === 9 || buttonPressed === 0 || buttonPressed === '.' ) { Vibration.vibrate(35); } switch(buttonPressed) { case 'DEL': Vibration.vibrate(35); setCurrentNumber(currentNumber.substring(0, (currentNumber.length - 1))) return case 'C': Vibration.vibrate(35); setLastNumber('') setCurrentNumber('') return case '=': Vibration.vibrate(35); setLastNumber(currentNumber + '=') calculator() return } setCurrentNumber(currentNumber + buttonPressed) }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

De su pregunta, no está claro dónde desea realizar la conversión. Sin embargo, esto debería ponerlo en el camino correcto.

Tanto toFixed() como toPrecision() devuelven una cadena que representa un número. Está claro que no puede usar la cadena para más cálculos. Para hacerlo, use parseFloat() para obtener el número de punto flotante de la cadena.

 const floatingPointNumber = 1.567; parseFloat(floatingPointNumber.toFixed(2)); parseFloat(floatingPointNumber.toPrecision(3));

Con respecto a toFixed() y toPrecision() , en realidad realizan la misma operación pero el primero da n lugares decimales mientras que el último da n dígitos (ver esta pregunta ).

about 4 years ago · Juan Pablo Isaza Denunciar

0

Entiendo que está tratando de redondear y no solo recortar a lugares decimales. Podrías usar Math.round . Si bien se redondea al int más cercano, puede usar este truco para redondear decimales:

 const roundToHundredths = num=>{ let roundedNum = Math.round(num*100)/100 // force 2 decimal places return roundedNum.toFixed(2); }

Tenga en cuenta que el valor ahora es una cadena. Use parseFloat si se deben realizar otros cálculos

about 4 years ago · Juan Pablo Isaza Denunciar

0

prueba esto, puede que te ayude;

 function floatTwoDecFromString(value: string) { let newValue = value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1'); newValue = newValue.indexOf('.') !== -1 ? newValue.slice(0, newValue.indexOf('.') + 3) : newValue; return newValue; }
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