Zaokrąglanie
Ostatnio zmodyfikowano 2015-12-15 07:36
Banneq Temat założony przez niniejszego użytkownika |
Zaokrąglanie » 2015-12-14 19:32:02 Jak zaokrąglić jakąś wczytaną liczbę do iluś tam mijesc po przecinku? Nie chodzi mi o jej wypisanie printf( "%.2f", n ); tylko o samo zaokrąglenie. |
|
pekfos |
» 2015-12-14 20:10:51 Pomnóż razy 10 do potęgi ileśtam, zaokrąglij w określony sposób, podziel przez 10 do potęgi ileśtam. |
|
darko202 |
» 2015-12-15 07:36:00 z https://forum.4programmers.net/C_i_C++/239057-zaokraglanie_liczb_do_2_miejsc_po_przecinku#include <stdio.h> #include <math.h>
int pow_i( int base, int exp ) { int result = 1; while( exp ) { if( exp & 1 ) result *= base; exp >>= 1; base *= base; } return result; }
float round_float_precision( float x, unsigned digits ) { unsigned precision = pow_i( 10, digits ); return roundf( x * precision ) / precision; }
int main( void ) { float x = 123.456; printf( "Two digits of precision\n" ); printf( "- by printf - %.2f\n", x ); printf( "- by setting value precision - %f\n", round_float_precision( x, 2 ) ); return 0; }
out: Two digits of precision - by printf - 123.46 - by setting value precision - 123.460000 |
|
« 1 » |