首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 数据类型的转换 12位整数
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chc05
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-19 19:56:09 楼主
     
    单精度-100.56在vb中调用Float2Int(-100.56) 的结果为-102700679212

    -102700679212是个12位的整数,
    在C中,没有Float2Int函数,   要将-100.56转换为-102700679212,怎么转换????

    谢谢
    60  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baihacker
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

    发表于:2008-08-19 20:03:291楼 得分:0
    C/C++ code
    int Float2Int(float f) { return *(int*)&f; } int main(int argc, char* argv[]) { printf("%d", Float2Int(-100.56)); return 0; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chc05
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 20:36:562楼 得分:0
    也就是说如何将float转成long,int, 不损失精度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • k2eats
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-19 20:49:443楼 得分:0
    C/C++ code
    #include <stdio.h> int Float2Int(float f) { return *(int*)&f; } float Int2Float(int i) { return *(float*)&i; } int main(int argc, char* argv[]) { float f = -100.56; int i = Float2Int(f); float i2f = Int2Float(i); printf("%d\n", i); printf("%f\n", i2f); return 0; }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baihacker
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

    发表于:2008-08-19 21:05:214楼 得分:0
    引用 2 楼 chc05 的回复:
    也就是说如何将float转成long,int, 不损失精度

    不可能
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • e_sharp
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 11:27:305楼 得分:0
    int Float2Int(float f)
    {
        return *(int*)&f;
    }
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved