Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool is_integer_eps(float k, float eps)
- {
- return k - floor(k) < eps;
- }
- void reverse_substr(char* &str,int start,int end)
- {
- int i, j;
- for (i = start, j = end; i < j; i++, j--)
- {
- char temp = str[i];
- str[i] = str[j];
- str[j] = temp;
- }
- }
- char* native_sprintf(float k)
- {
- char* str = new char[100];
- int iter = 0;
- //sprintf(str, "%f", k);
- int data1 = (int)k,data2; //целая часть числа
- float data2f = k - data1; //дробная часть числа
- while(!is_integer_eps(data2f,0.001))
- data2f *= 10;
- data2 = (int)data2f;
- while(data1>0)
- {
- str[iter] = data1%10 + '0';
- data1 /= 10;
- iter++;
- }
- reverse_substr(str,0,iter-1);
- str[iter] = '.';
- iter++;
- int iter_point = iter;
- while(data2>0)
- {
- str[iter] = data2%10 + '0';
- data2 /= 10;
- iter++;
- }
- reverse_substr(str,iter_point,iter-1);
- str[iter] = '\0';
- return str;
- }
- void PrintStr(char* str)
- {
- for(int i=0;i<sizeof(str);i++)
- cout<<str[i];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement