git-svn-id: svn://db.shs.com.ru/pip@520 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2017-06-22 13:20:57 +00:00
parent c503b65b24
commit 2e92e043da
3 changed files with 29 additions and 12 deletions

View File

@@ -3,14 +3,17 @@
int main(int argc, char *argv[]) {
PIVector2D<PIVariant> v(2, 2, PIVector<PIVariant>() << PIVariant(1) << PIVariant(2) << PIVariant(3) << PIVariant(4));
/*PIVector2D<PIVariant> v(2, 2, PIVector<PIVariant>() << PIVariant(1) << PIVariant(2) << PIVariant(3) << PIVariant(4));
piCout << v;
PIByteArray ba;
ba << v;
piCout << ba.size();
PIVector2D<PIVariant> v2;
ba >> v2;
piCout << v2;
piCout << v2;*/
double f = 10.0002;
PIString s = PIString::fromNumber(f, 'g', 6);
piCout << s;
return 0;
}

View File

@@ -93,8 +93,22 @@ PIString PIString::lltos(const llong num) {pisprintf("%lld", num); return PIStri
PIString PIString::uitos(const uint num) {pisprintf("%u", num); return PIString(ch);}
PIString PIString::ultos(const ulong num) {pisprintf("%lu", num); return PIString(ch);}
PIString PIString::ulltos(const ullong num) {pisprintf("%llu", num); return PIString(ch);}
PIString PIString::ftos(const float num) {pisprintf("%.8f", num); return PIString(ch);}
PIString PIString::dtos(const double num) {pisprintf("%.8f", num); return PIString(ch);}
PIString PIString::ftos(const float num, char format, int precision) {
char f[16] = "%.";
int wr = sprintf(&(f[2]), "%d", precision);
f[2 + wr] = format;
f[3 + wr] = 0;
pisprintf(f, num);
return PIString(ch);
}
PIString PIString::dtos(const double num, char format, int precision) {
char f[16] = "%.";
int wr = sprintf(&(f[2]), "%d", precision);
f[2 + wr] = format;
f[3 + wr] = 0;
pisprintf(f, num);
return PIString(ch);
}
#undef pisprintf

View File

@@ -603,15 +603,15 @@ public:
//! \brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const float value) {clear(); *this += PIString::fromNumber(value); return *this;}
PIString & setNumber(const float value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const double & value) {clear(); *this += PIString::fromNumber(value); return *this;}
PIString & setNumber(const double & value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::setFloat
PIString & setNumber(const ldouble & value) {clear(); *this += PIString::fromNumber(value); return *this;}
PIString & setNumber(const ldouble & value, char format = 'f', int precision = 8) {clear(); *this += PIString::fromNumber(value, format, precision); return *this;}
//! \brief Set string content to human readable size in B/kB/MB/GB/TB
//! \details Example: \snippet pistring.cpp PIString::setReadableSize
@@ -653,15 +653,15 @@ public:
//! \brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const float value) {return ftos(value);}
static PIString fromNumber(const float value, char format = 'f', int precision = 8) {return ftos(value, format, precision);}
//! \brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const double & value) {return ftos(value);}
static PIString fromNumber(const double & value, char format = 'f', int precision = 8) {return dtos(value, format, precision);}
//! \brief Return string contains numeric representation of "value"
//! \details Example: \snippet pistring.cpp PIString::fromFloat
static PIString fromNumber(const ldouble & value) {return ftos(value);}
static PIString fromNumber(const ldouble & value, char format = 'f', int precision = 8) {return dtos(value, format, precision);}
//! \brief Return "true" or "false"
static PIString fromBool(const bool value) {return PIString(value ? "true" : "false");}
@@ -698,8 +698,8 @@ private:
static PIString uitos(const uint num);
static PIString ultos(const ulong num);
static PIString ulltos(const ullong num);
static PIString ftos(const float num);
static PIString dtos(const double num);
static PIString ftos(const float num, char format = 'f', int precision = 8);
static PIString dtos(const double num, char format = 'f', int precision = 8);
static PIString fromNumberBaseS(const llong value, int base = 10, bool * ok = 0);
static PIString fromNumberBaseU(const ullong value, int base = 10, bool * ok = 0);
static llong toNumberBase(const PIString & value, int base = -1, bool * ok = 0);