Como se podría hacer para aproximar un numero por defecto y por exceso? Entendiendo que digamos, tenemos el numero 2.534823
Una aproximación por defecto a 4 decimales, sería 2.5348
y para aproximación por exceso a 4 decimales, sería 2.5349
Es como hacer un redondeo pero para una posicion de decimal especifica, hay alguna manera de hacerlo en C++?
Tengo el siguiente ejemplo, pero sería unicamente para redondear al numero entero más cercano, ya sea mayor o menor:
#include<iostream>
#include<math.h>
using namespace std;
int main(){
float num;
int decim;
cout<<"\tCalcular aproximaciones por defecto y exceso"<<endl<<endl;
cout<<"Ingrese un numero: " ;
cin>>num;
cout<<"Ingresa la cantidad de dedcimales a dejar: ";
cin>>decim;
/*
con ceil y floor me acerca al entero,
ceil al entero más cercano mayor
floor al entero más cercano menor
*/
cout<<"Aproximación por exceso: "<<ceil(num)<<endl;
cout<<"Aproximación por defecto: "<<floor(num)<<endl;
/*
la aproximación debería quedar como:
numero ingresado = 1.432986
para por defecto con 4 decimales, quedaria 1.4329
para exceso con 4 decimales quedaría 1.4323
pero con ceil, subiría a 2
y con floor bajaría a 1
*/
return 0;
}
En C Se podía truncar un numero, a una cantidad especifica de decimales al imprimirlo(Es decir, la aproximación por defecto):
printf("%.3f", x);
Ó
printf("%3f", x);
No recuerdo cual de las 2 formas, lo que quiero saber, es como se podría hacer lo mismo pero en C++ y además obtener la aproximación por exceso