avakar был почти прав - используйте modf, но детали были отключены.
modf возвращает дробную часть, поэтому тест должен состоять в том, что результат modf равен 0.0.
modf принимает два аргумента, второй из которых должен быть указателем того же типа, что и первый аргумент. Передача NULL или 0 вызывает ошибку сегментации в среде выполнения g ++. В стандарте не указывается, что передача 0 безопасна; возможно, это работает на машине Авакара, но не делайте этого.
Вы также можете использовать fmod(a,b)
, который вычисляет a
по модулю b
, проходящий 1.0. Это также должно дать дробную часть.
#include<cmath>
#include<iostream>
int main ()
{
double d1 = 555;
double d2 = 55.343;
double int_part1;
double int_part2;
using namespace std;
cout << boolalpha;
cout << d1 << " " << modf ( d1, &int_part1 ) << endl;
cout << d1 << " " << ( modf ( d1, &int_part1 ) == 0.0 ) << endl;
cout << d2 << " " << modf ( d2, &int_part2 ) << endl;
cout << d1 << " " << ( modf ( d2, &int_part2 ) == 0.0 ) << endl;
cout << d2 << " " << modf ( d2, &int_part2 ) << endl;
cout << d1 << " " << ( modf ( d2, &int_part2 ) == 0.0 ) << endl;
cout << d1 << " " << fmod ( d1, 1.0 ) << endl;
cout << d1 << " " << ( fmod ( d1, 1.0 ) == 0 ) << endl;
cout << d2 << " " << fmod ( d2, 1.0 ) << endl;
cout << d2 << " " << ( fmod ( d2, 1.0 ) == 0 ) << endl;
cout.flush();
modf ( d1, 0 ); // segfault
}
Вы можете использовать статический метод parse
из Uri
Uri myUri = Uri.parse("http://stackoverflow.com")
Что вы собираетесь делать с URI?
Если вы собираетесь использовать его, например, с HttpGet, вы можете просто использовать строку напрямую при создании экземпляра HttpGet .
HttpGet get = new HttpGet("http://stackoverflow.com");