Dev - C++ - Como cortar decimales sin redondear

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 9 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Como cortar decimales sin redondear

Publicado por Ariel (1 intervención) el 12/07/2018 00:12:19
Buenas tardes estoy tratando de resolver un problema. En la salida de datos me pide que muestre un numero con solo un decimal de precision, pero no redondearlo por ej; 1.56 que sea 1.5.


Ayudenme porfavor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.288
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Como cortar decimales sin redondear

Publicado por dario (107 intervenciones) el 12/07/2018 05:21:05
Hola, prueba este codigo es C++
Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <iomanip> //para usar setprecision
#include <cmath> //para usar trunc
 
using namespace std;
 
int main() {
  float a;
 
  a = 1.78;
 
  cout << a << endl; //muestra el numero original
 
  //muestra el numero con 1 decimal sin redondear
  cout << setprecision(2) << trunc(a*10)/10;
 
  return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como cortar decimales sin redondear

Publicado por Martin Condori Alanes (1 intervención) el 23/10/2019 19:09:21
hola burenas ese metodo no funciona totalmente ya que en un resutado sale 1.03503 y al hacer con ese metodo me sale 1.00 en ves de 1.03
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Alfil
Val: 4.317
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Como cortar decimales sin redondear

Publicado por Alfil (1166 intervenciones) el 23/10/2019 20:13:37
Si lees bien el enunciado del problema y el funcionamiento del programa veras que el resultado que debe dar para una entrada de 1.03 es 1.0, ya que debe mostrar un único decimal sin redondear el resultado, es decir, truncando todos los decimales excepto el primero.

Si lo que quieres es tener dos decimales y truncar el resto debes cambiar la línea 15 por:

1
cout << setprecision( 3 ) << "\na = " << trunc( a * 100 ) / 100.0f ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar