#include using namespace std; using ii = pair; using iii = pair; using vi = vector< int >; using vii = vector< ii >; using ll = long long; using vl = vector< ll >; using pll = pair; using vll = vector< pll >; using plll= pair; #define FastIO cin.tie(0);cout.tie(0);ios::sync_with_stdio(0); #define LSOne(a) ( (a) & -(a) ) #define INF ll(4e18) #define OO int(1e9) #define EPS 1e-9 #define PB push_back #define S second #define F first const int N = 2e5 + 5e1; const ll MOD = 1e9 + 7; char buff[N]; ll _pow(ll n ,ll p) { ll x = 1; while( p > 0 ) { if( p & 1 ) x = (x * n); n = (n * n); p >>= 1; } return x; } int main() { ll a ,b ,k; scanf("%lld%lld%lld" ,&a ,&b ,&k); auto bits = [&](ll x) -> ll { ll cnt = 0; while( x ) x /= 10 ,cnt ++; return cnt; }; if( a == b ) { printf("1."); while( k-- ) printf("0"); return 0; } printf("0."); a *= 10; vl ans; while( k ) { ll n = bits(a); bool flag = false; for(ll i = n - 1 ; i >= 0 ; i--) { ll a1 = a / _pow(10ll ,i); if( a1 >= b ) { flag = true; ll c = a1 / b; ll d = c * b; k -= 1; ans.PB(c); a -= d; break; } } if( !flag ) { a *= 10; if( a < b ) { k -= 1; ans.PB(0); } } } int m = (int)ans.size(); while( (int)ans.size() != m + 1 ) { ll n = bits(a); bool flag = false; for(ll i = n - 1 ; i >= 0 ; i--) { ll a1 = a / _pow(10ll ,i); if( a1 >= b ) { flag = true; ll c = a1 / b; ll d = c * b; k -= 1; ans.PB(c); a -= d; break; } } if( !flag ) { a *= 10; if( a < b ) { k -= 1; ans.PB(0); } } } if( ans.back() >= 5 ) { for(int i = (int)ans.size() - 2 ; i >= 0 ; i--) { if( ans[i] == 9 ){ ans[i] = 0; } else { ans[i] += 1; break; } } } for(int i = 0 ; i < (int)ans.size() - 1 ; i++){ printf("%lld" ,ans[i]); } puts(""); return 0; }