diff --git a/a.exe b/a.exe index e154de8..5a30829 100644 Binary files a/a.exe and b/a.exe differ diff --git a/as1.cpp b/as1.cpp index 01cd8b1..8a07b7c 100644 --- a/as1.cpp +++ b/as1.cpp @@ -3,6 +3,55 @@ #include #include #include +#include + +#define DOUBLE_MAX_LENGTH 6 + + +namespace std { +string to_string(int val) { + char buf[20]; + sprintf(buf, "%d", val); + return string(buf); +} + +string to_string(unsigned val) { + char buf[20]; + sprintf(buf, "%u", val); + return string(buf); +} + +string to_string(long val) { + char buf[20]; + sprintf(buf, "%ld", val); + return string(buf); +} + +string to_string(unsigned long val) { + char buf[20]; + sprintf(buf, "%lu", val); + return string(buf); +} + +string to_string(float val) { + char buf[200]; + sprintf(buf, "%f", val); + return string(buf); +} + +string to_string(double val) { + char buf[2000]; + sprintf(buf, "%f", val); + return string(buf); +} +string to_string(long double val) { + char buf[20000]; + sprintf(buf, "%Lf", val); + return string(buf); +} +} + + using namespace std; @@ -144,13 +193,41 @@ int Fraction::get_common_divisor() const return t_top; } - +/* void get_decimal_repeating_part(double f) { double t_dec = f - (int)f; } +*/ +int get_double_decimals_length(double d) +{ + ostringstream out; + //out.precision(18);//覆盖默认精度 + out< 100) t /= 10; + + return t; +} + + +inline unsigned long int get_double_decimals_part(double d) +{ + return transfer_double_decimals_to_unsigned_long_int(d-floor(d)); +} + + @@ -169,8 +246,8 @@ int main() // for(int i =0; i < a.size(); i++) cout << a[i] <