加大浮点数默认宽度和小数位数
This commit is contained in:
parent
19c7d82be3
commit
2acfc0dfc4
|
@ -27,8 +27,8 @@ public:
|
||||||
explicit String(uint value, int radix = 10);
|
explicit String(uint value, int radix = 10);
|
||||||
explicit String(Int64 value, int radix = 10);
|
explicit String(Int64 value, int radix = 10);
|
||||||
explicit String(UInt64 value, int radix = 10);
|
explicit String(UInt64 value, int radix = 10);
|
||||||
explicit String(float value, byte decimalPlaces = 2);
|
explicit String(float value, int decimalPlaces = 4);
|
||||||
explicit String(double value, byte decimalPlaces = 2);
|
explicit String(double value, int decimalPlaces = 8);
|
||||||
//virtual ~String();
|
//virtual ~String();
|
||||||
|
|
||||||
using Array::SetLength;
|
using Array::SetLength;
|
||||||
|
@ -65,8 +65,8 @@ public:
|
||||||
bool Concat(uint num, int radix = 10);
|
bool Concat(uint num, int radix = 10);
|
||||||
bool Concat(Int64 num, int radix = 10);
|
bool Concat(Int64 num, int radix = 10);
|
||||||
bool Concat(UInt64 num, int radix = 10);
|
bool Concat(UInt64 num, int radix = 10);
|
||||||
bool Concat(float num, byte decimalPlaces = 2);
|
bool Concat(float num, int decimalPlaces = 4);
|
||||||
bool Concat(double num, byte decimalPlaces = 2);
|
bool Concat(double num, int decimalPlaces = 8);
|
||||||
|
|
||||||
/*template<typename T>
|
/*template<typename T>
|
||||||
String& operator += (T rhs) {Concat(rhs); return (*this);}*/
|
String& operator += (T rhs) {Concat(rhs); return (*this);}*/
|
||||||
|
@ -122,6 +122,7 @@ public:
|
||||||
|
|
||||||
int ToInt() const;
|
int ToInt() const;
|
||||||
float ToFloat() const;
|
float ToFloat() const;
|
||||||
|
double ToDouble() const;
|
||||||
|
|
||||||
// 输出对象的字符串表示方式
|
// 输出对象的字符串表示方式
|
||||||
virtual String& ToStr(String& str) const;
|
virtual String& ToStr(String& str) const;
|
||||||
|
|
|
@ -104,14 +104,14 @@ String::String(UInt64 value, int radix) : Array(Arr, ArrayLength(Arr))
|
||||||
Concat(value, radix);
|
Concat(value, radix);
|
||||||
}
|
}
|
||||||
|
|
||||||
String::String(float value, byte decimalPlaces) : Array(Arr, ArrayLength(Arr))
|
String::String(float value, int decimalPlaces) : Array(Arr, ArrayLength(Arr))
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
|
|
||||||
Concat(value, decimalPlaces);
|
Concat(value, decimalPlaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
String::String(double value, byte decimalPlaces) : Array(Arr, ArrayLength(Arr))
|
String::String(double value, int decimalPlaces) : Array(Arr, ArrayLength(Arr))
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
|
|
||||||
|
@ -470,14 +470,14 @@ bool String::Concat(UInt64 num, int radix)
|
||||||
return Concat(buf, strlen(buf));
|
return Concat(buf, strlen(buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool String::Concat(float num, byte decimalPlaces)
|
bool String::Concat(float num, int decimalPlaces)
|
||||||
{
|
{
|
||||||
char buf[20];
|
char buf[20];
|
||||||
auto string = dtostrf(num, (decimalPlaces + 2), decimalPlaces, buf);
|
auto string = dtostrf(num, (decimalPlaces + 2), decimalPlaces, buf);
|
||||||
return Concat(string, strlen(string));
|
return Concat(string, strlen(string));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool String::Concat(double num, byte decimalPlaces)
|
bool String::Concat(double num, int decimalPlaces)
|
||||||
{
|
{
|
||||||
char buf[20];
|
char buf[20];
|
||||||
auto string = dtostrf(num, (decimalPlaces + 2), decimalPlaces, buf);
|
auto string = dtostrf(num, (decimalPlaces + 2), decimalPlaces, buf);
|
||||||
|
@ -714,14 +714,36 @@ int String::ToInt() const
|
||||||
{
|
{
|
||||||
if(_Length == 0) return 0;
|
if(_Length == 0) return 0;
|
||||||
|
|
||||||
return atoi(_Arr);
|
if(_Arr[_Length] == '\0') return atoi(_Arr);
|
||||||
|
|
||||||
|
// 非零结尾字符串需要特殊处理
|
||||||
|
String s;
|
||||||
|
s.copy(_Arr, _Length);
|
||||||
|
return s.ToInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
float String::ToFloat() const
|
float String::ToFloat() const
|
||||||
{
|
{
|
||||||
if(_Length == 0) return 0;
|
if(_Length == 0) return 0;
|
||||||
|
|
||||||
return atof(_Arr);
|
if(_Arr[_Length] == '\0') return atof(_Arr);
|
||||||
|
|
||||||
|
// 非零结尾字符串需要特殊处理
|
||||||
|
String s;
|
||||||
|
s.copy(_Arr, _Length);
|
||||||
|
return s.ToFloat();
|
||||||
|
}
|
||||||
|
|
||||||
|
double String::ToDouble() const
|
||||||
|
{
|
||||||
|
if(_Length == 0) return 0;
|
||||||
|
|
||||||
|
if(_Arr[_Length] == '\0') return atof(_Arr);
|
||||||
|
|
||||||
|
// 非零结尾字符串需要特殊处理
|
||||||
|
String s;
|
||||||
|
s.copy(_Arr, _Length);
|
||||||
|
return s.ToDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 输出对象的字符串表示方式
|
// 输出对象的字符串表示方式
|
||||||
|
|
Loading…
Reference in New Issue