我的程序运行后只显示最多16个
比如我给一个变量赋值为12345678901234567890123456789012
转换成字符串给编辑框的成员变量,结果运行后只显示1234567890123456
为什么啊?谢谢!
比如我给一个变量赋值为12345678901234567890123456789012
转换成字符串给编辑框的成员变量,结果运行后只显示1234567890123456
为什么啊?谢谢!
解决方案 »
- 在英文操作系统下PropertyPage里控件显示不正常
- 程序一运行能否获取自己所在的路径
- 求教EVC中导入文件的问题,高手指教
- 【求助】使用命名管道怎样传递CString类数据?
- vs2005里面共享数据段为何不能共享啊?
- 【新手】 除了 Visual Assist ,Microsoft Visual C++ 6.0 还有什么比较好的辅助工具?
- vc 每隔30秒从Access数据库读取一次数据
- signcode 还有问题,没有cn参数,acptvc请进
- 关于删除的一点问题
- 一个关于WM_ERASEBKGND的问题
- 问一下VC++的调试模式与非调试模式有什么不一样的。。
- 有关try,catch的问题,有100分相送
有就删掉
2、你的编辑框不知是否构长度
如:
char ptr[80]
double dNum=12345678901234567890123456789012;
CString csNum=_gcvt(dNum,32,ptr);
结果是1234567890123456
只显示16位
1234567890123456 没有超过Double的范围,12345678901234567就已经超过了范围。
C/C++ recognizes the types shown in the table below.Type Name Bytes Other Names Range of Values
int * signed,
signed int System dependent
unsigned int * unsigned System dependent
__int8 1 char,
signed char –128 to 127
double 8 none 1.7E +/- 308 (15 digits)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^你的 DOUBLE 变量早被撑死了
参考: MSDN 中 + Visual C++ documentation
|
+ Visual C++ programmer's guide
|
+ Language Quick Reference
|
+ Reference Tables
|
Data Type Ranges
C/C++ recognizes the types shown in the table below.Type Name | Bytes | Other Names | Range of Values
int * signed,signed int System dependent
unsigned int * unsigned System dependent
__int8 1 char, signed char –128 to 127
double 8 none 1.7E +/- 308 (15 digits)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我定义double dLg
然后赋值给它dLg=3.1415926535897932384626433832795
那么,就是说double型的只能显示最多十六位了?那用什么类型可以显示32位呢?
还有我没有限制CString的最大长度
CString strValue;strValue.Format("%.38f",dValue);试一下不行就改用 sprintf(szValue,"%.38f",dValue);再不行就试 wsprintf(szValue,"%.38f",dValue);
估计 wsprintf 可能不行,值细查一下 msdn 这几个函数的用法就好了
祝你好运
难道是它自己算的?
数据宽度都是 32 位64 位机也处理不了你那么长的数据估计是人为的编写其它函数,存储时为字符,自已做的计算函数,也就是把那么长的数据存到 BYTE 中,再自己做计算函数。
我没有别的办法了,帮你 顶!!!!!!!!!!!!!!!!!!!
例如(这样比较省事:p):
struct bigdouble
{
整数部分1 unsigned long;
整数部分2 unsigned long;
小数部分1 unsigned long;
小数部分2 unsigned long;
}
如果想要扩展他的功能的话可以重载一下'=' and '<' ...操作.或者你在找找math lib看看有没有有关的类型声明。good luck!!!