自己实现float/double转字符串问题
自己写了一个double/float转字符串的函数,EspString是我自己写的一个动态字符串类,可以理解为MFC的CString代码
程序代码:
static void ToString(double DoubleValue, EspString& StringValue) { StringValue.Empty(); if (DoubleValue == 0.0) { StringValue.Append('0'); return; } bool IsNeg = DoubleValue < 0; if (IsNeg)DoubleValue = -DoubleValue; while (DoubleValue >= 1) { StringValue.Append(((int)DoubleValue % 10) + 48); DoubleValue /= 10; } if (IsNeg) StringValue.Append('-'); StringValue.Reverse(); if (DoubleValue == 0.0) return; StringValue.Append('.'); while (DoubleValue != 0) { DoubleValue *= 10; StringValue.Append(((int)(DoubleValue) % 10) + 48); } }
但是启动了之后没有任何反应,而且过了很长时间报错——0x7646A6F2 处(位于 ***.exe 中)有未经处理的异常: Microsoft C++ 异常: char,位于内存位置 0x0118FE88 处。
请问到底是怎么回事呢?有什么方式来避免呢?谢谢各位大佬~~