求助:为什么出现这么奇怪的现象啊?谢谢2!

MJXQJ888 2008-10-11 02:17:29
int main()
{

struct DotStingRodFall //点线条下掉结构
{
float FallStartTime; //表示开始掉的时间
float FallEndTime; //表示掉到底端的时间
int position; //表示点位置(左中右)
int State; //表示点的状态
bool FallCompleteFlag; //表示这个动物是否掉完(false 没有掉完 true 掉完了)
};
DotStingRodFall* SongDotStingRodFall; //歌曲 点线条下掉结构
SongDotStingRodFall = new DotStingRodFall[331]; //开辟 331 个 DotStingRodFall 大小空间


SongDotStingRodFall[0].FallStartTime = 96.1f; //表示点开始掉的时间
SongDotStingRodFall[0].FallEndTime = 97.74f; //表示点掉到底端的时间
SongDotStingRodFall[0].position = 1; //表示点位置(左中右)
SongDotStingRodFall[0].State = 3; //表示点的状态
SongDotStingRodFall[0].FallCompleteFlag = false;

SongDotStingRodFall[1].FallStartTime = 97.74f; //表示点开始掉的时间
SongDotStingRodFall[1].FallEndTime = 99.38f; //表示点掉到底端的时间
SongDotStingRodFall[1].position = 3; //表示点位置(左中右)
SongDotStingRodFall[1].State = 3; //表示点的状态
SongDotStingRodFall[1].FallCompleteFlag = false;

char yValue[10];
ltoa((SongDotStingRodFall[0].FallStartTime)*1000.0f,yValue,10);
MessageBox(NULL, yValue, TEXT("COM1"), MB_OK); //如果打开失败
}

可是 show 出来的结果是:96099
为什么内不是 96100 啊

我希望把

SongDotStingRodFall[0].FallStartTime = 96.1f; //表示点开始掉的时间

的值 * 1000
放到 char 类型的数组中,然后 写到文件里

各位大哥,我是错在哪里?
谢谢!
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MJXQJ888 2008-10-12
  • 打赏
  • 举报
回复
谢谢楼上各位大哥!
为什么

float dt = (SongDotStingRodFall[0].FallStartTime) * 1000.0f;
ltoa(dt,yValue,10);

这样可可以了呢(试了,确实可以了)



ltoa(dt,yValue,10);
还是存在 float到long的转换 啊?

谢谢!
frank_ll 2008-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jia_xiaoxin 的回复:]
这是因为ltoa还存在一个float到long的转换。
[/Quote]
ls高手啊
jia_xiaoxin 2008-10-11
  • 打赏
  • 举报
回复
这是因为ltoa还存在一个float到long的转换。
jia_xiaoxin 2008-10-11
  • 打赏
  • 举报
回复
计算精度的问题,改为这样

float dt = (SongDotStingRodFall[0].FallStartTime) * 1000.0f;
ltoa(dt,yValue,10);
takbj 2008-10-11
  • 打赏
  • 举报
回复
float的存储方式导致的,浮点型!
问一下,一定需要96100这个结果吗?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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