• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

kaikai向前走

转职任务完成。崭新fn诞生
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

浮点数默认精度在windows/linux上的差异

好久没写点什么了。
浮点数在fpu上处理有个精度控制,可以是单精度(长32bit其中尾数24bit),双精度(长64bit尾数56bit),扩展精度(长80bit,尾数64bit)。这是通过浮点控制字的一个位段来控制的。
在windows/vc环境(未证实,也许与编译器有关,比如是vc)下,默认的精度是双精度。
在linux/gcc环境则默认是扩展精度。
这可以造成你在含有浮点计算的程序移植时出现一些细微的差异。
win/vc可以通过_controlfp函数改变默认设置,linux/gcc则是用_FPU_SETCW宏。
另外要说一点,dx初始化时可以选择浮点的精度为单精度,那个接口最终应该也是通过改变fpu的控制字实现的。

posted on 2009-03-01 12:24  kaikai  阅读(1978)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3