format格式话的时候变成0求解?

Persisterfan 2014-09-17 02:22:55
前几天一直发现写入文件的数据全是0 ,找了很长时间发现问题在下面的地方:

P:a是一个float数,如31.000000,然后执行下面的格式化语句时,结果str的值全是0。(我知道讲float格式成int是不严谨的,但是为什么是0不是很清楚?但是这样的问题在调试过程程是很难发现的)

str.Format("%d\n",a);
pFileExport->WriteString(str);

...全文
587 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinayu2007 2014-09-19
  • 打赏
  • 举报
回复
在VC中转不成功,返回0或NULL,不报错。
chinayu2007 2014-09-19
  • 打赏
  • 举报
回复
LZ的问题关于VC还是C++builder? Format在C++builder中的使用方法不一样。 AnsiString str; float b=30.000001; str =str.Format("%d",OPENARRAY(TVarRec,(b)));//运行到这一句报错,提示:参数类型不一致,要求b定义成int型或者格式化字符串改为"%f" ShowMessage(str);
Persisterfan 2014-09-19
  • 打赏
  • 举报
回复
so si di nai
gzliudan 2014-09-18
  • 打赏
  • 举报
回复
应该用FormatFloat这个函数
lhy 2014-09-18
  • 打赏
  • 举报
回复
返回的数才是格式化的字符串。str自己的format是不会改变str的值的。
Persisterfan 2014-09-17
  • 打赏
  • 举报
回复
说啥呢 答非所问啊
chinayu2007 2014-09-17
  • 打赏
  • 举报
回复
格式化字符串和C语不一样 AnsiString str; float a = 31.000000; AnsiString b = str.FormatFloat("0",a); ShowMessage(b);

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧