Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

528
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!