当使用浮点数和双精度数时,c 中的 -0.0000 是多少?

2024-03-17

#include <stdio.h>
#include <stdlib.h>

#define answer 3.141593

void main(int argc, char **argv) {

        float a = (argc - 2)?: strtod(argv[1], 0);    
        printf("double = %lf ,float =  %f", a-answer , a-answer);

}

当我这样运行时:

./a.out 3.141593

输出是

double = -0.000000 ,float =  -0.000000

为什么会这样-0.00000?我怎样才能让它输出0.000000 ?

我怎样才能使a == answer ?


如果使用2的补码,怎么会有-0值呢?


浮点数不使用 2 的补码。它们有符号、指数和尾数,而你的数字只有带符号的零,或者更可能的是,你有一些像 -1.0e-15 这样的数字,它被打印为 -0.0000。尝试使用 %e 而不是 %f。微小的差异是由于无法在有限精度数据类型中存储无限精度的数字(发生了一些舍入),并且当您将双精度更改为浮点时,必须进行额外的舍入。 (请记住,3.141593 是二进制表示的无限周期数,这实际上取决于该数字存储的类型)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当使用浮点数和双精度数时,c 中的 -0.0000 是多少? 的相关文章

  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • (const T v) 在 C 中从来都不是必需的,对吗?

    例如 void func const int i 在这里 const是不必要的 因为所有参数都是按值传递的 包括指针 真的吗 C 中的所有参数确实都是按值传递 这意味着无论您是否包含该参数 实际参数都不会改变const or not 然而
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • C++11 动态线程池

    最近 我一直在尝试寻找一个用于线程并发任务的库 理想情况下 是一个在线程上调用函数的简单接口 任何时候都有 n 个线程 有些线程比其他线程完成得更快 并且到达的时间不同 首先我尝试了 Rx 它在 C 中非常棒 我还研究了 Blocks 和
  • 如何随着分辨率的变化自动调整大小和调整表单控件

    我注意到某些应用程序会更改控件的位置以尽可能适应当前的分辨率 例如 如果窗口最大化 则控件的设置方式应使整个 GUI 看起来平衡 是否可以使用 C 在 Visual studio 2010 中制作或实现此功能 Use Dock http m
  • 二叉树中的 BFS

    我正在尝试编写二叉树中广度优先搜索的代码 我已将所有数据存储在队列中 但我不知道如何访问所有节点并消耗它们的所有子节点 这是我的 C 代码 void breadthFirstSearch btree bt queue q if bt NUL
  • ASP.NET JQuery AJAX POST 返回数据,但在 401 响应内

    我的应用程序中有一个网页 需要调用我设置的 Web 服务来返回对象列表 这个调用是这样设置的 document ready function var response ajax type POST contentType applicati
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 在 C++17 中使用 成员的链接错误

    我在 Ubuntu 16 04 上使用 gcc 7 2 并且需要使用 C 17 中的新文件系统库 尽管确实有一个名为experimental filesystem的库 但我无法使用它的任何成员 例如 当我尝试编译此文件时 include

随机推荐

  • 最小长度子集的高效幂集算法

    我正在使用以下 C 函数来获取仅限于最小长度子集的幂集 string PowerSet int min len string set IEnumerable
  • 正在从 CakePHP URL 中删除 ID?

    大家好 正在开发一个新的 Cake 应用程序 想知道是否有办法从 Cake 中删除 ID in URL 路由 也许通过某种方式在 POST 中传递 ID 将 ID 作为 URL 参数传入似乎非常粗制滥造且不安全 谢谢 劣质 在 URL 中包
  • 根据用户组限制 S3 资源

    我有一个网络应用程序 用户 通过 Cognito 使用 ID 令牌 JWT 登录 可以从 S3 上传 下载文件 用户应仅访问与其组织相关的 S3 资源 为此 我正在考虑按组织分离 S3 路径 arn aws s3 my bucket org
  • 如何使 Kotlin“内部”​​对象可供测试访问?

    我的项目使用多个 Gradle 源集作为其生产代码库 而不仅仅是main domain dal rest test dbUnitTest 事实证明 这对于限制依赖性和强制关注点分离非常有用 然而它有一个缺点 我们无法使用以下方式访问类或方法
  • Firebug 的“网络”选项卡没有显示任何内容?

    我通常运行 Fiddler 来监控网络流量 现在使用 Mac 机器 我认为Firebug的net选项卡可以显示通过AJAX获取的流量 net选项卡已启用 但是 如果我尝试 google com 并输入一些内容 它的 google sugge
  • 根据屏幕宽度更改 JavaScript 中的 a 标签属性

    我试图使用媒体查询更改 a 标签的属性 但我发现带有超链接的媒体纯粹是建议性的 因此 替代方法是使用 JavaScript 但我似乎无法让 screen width 正常工作 JavaScript function adjustHeight
  • Sum(Case when) 导致选择的多行

    我有一张巨大的客户订单表 我想运行一个查询来按 user id 按月列出过去 13 个月的订单 我现在所拥有的 如下 可以工作 但不是只为每个 user id 列出一行 而是为 user id 的每个订单列出一行 例如 一个用户一生中总共有
  • 如何重启Android模拟器并保留系统数据

    Android模拟器关机时是否可以保留系统数据 不是SD卡数据 我的具体问题是我正在尝试将新的根证书导入 system etc security cacerts bks文件 但这需要重新启动 当我重新启动模拟器时 文件将恢复到原始状态 该文
  • 如何解决Java错误“pool-1-thread-xxxx”java.lang.OutOfMemory

    我搜索了有关此问题的帖子 但没有看到像我这样的情况 我的 java 控制台显示错误消息 pool 1 thread xxxx java lang OutOfMemory如下图 红线 CPU 使用率 绿线 内存使用情况 我增加了内存6G to
  • 如何在access中搜索2个日期和时间?

    我的访问字段中有MyDate and myTime 我的日期格式 16 09 2010 00 00 00 我的时间格式 16 09 2010 04 27 00 我需要在之间搜索date 01 01 2010 and time 12 50 0
  • 自定义命名空间事件将不起作用

    我正在尝试让自定义命名空间事件按此处所述工作 http docs jquery com Namespaced Events http docs jquery com Namespaced Events 但我一定错过了一些东西 因为除非命名空
  • UISlider 在 iOS7 中没有动画

    当我从 iOS 6 切换到 iOS 7 设计时 我注意到使用该方法setValue animated 不再为滑动过程设置动画 有其他人遇到过这个问题并找到解决方案吗 我将添加一些代码来表明我没有做任何复杂的事情 Variable decla
  • C++ 代码中“&”运算符的意义

    我看到一些这样的代码 void testCase2 int variant if variant 0x1 return 什么是 if语句中的运算符意思是 为什么要使用 是按位与运算符 给定两个整数操作数 它对每个位位置执行 AND 运算 即
  • 让 WAMP 在 Windows 启动时自动启动(无需登录或任何 UAC 干扰)

    我希望在打开计算机时启动 WAMP 理想情况下 它甚至无需用户登录即可启动 我已将 WAMP 添加到注册表中的启动项中 但用户需要登录 而 UAC 仍在发挥其烦人的作用 有没有一种方法可以在不登录或UAC干扰的情况下完成此任务 Thanks
  • 如何在iphone sdk中制作跑分动画

    我希望在 xcode 中为我的 iPhone 应用程序做一个运行分数动画 这样每当我将分数增加一个整数 ScoreAdded 时 分数就会运行到新分数 而不是更新到新分数 我尝试了一些带有 sleep 的 for 循环 但没有可用 所以我想
  • VS 2015 ASP.NET Web API (EF6) 和 Xamarin 启用迁移失败

    我正在开发一个项目 该项目将使用 ASP NET Web API 作为数据服务 并使用 Xamarin 便携式应用程序作为客户端 我尝试在 Web 应用程序中启用迁移 但收到以下错误 Enable Migrations enableauto
  • JAVA:为什么带负号的字节的二进制文字被视为整数类型?

    我无法理解以下行为 我试图使用二进制文字声明字节掩码 byte mask 0b1111 1111 但这是不可能的 因为我收到以下错误消息 类型不匹配 无法从 int 转换为 byte 最有趣的是 当我尝试直接以十进制表示形式声明掩码时 by
  • 如何知道哪个 git 分支触发了 jenkins 作业

    我有一个管道 Jenkins 作业 它按预期工作 并使用选项进行配置 GITScm 轮询的 GitHub 挂钩触发器 用于在任何推送到 git 存储库时自动构建 我已将这个 Jenkins URL 挂接到多个 git repo 的说repo
  • Python对二维列表中具有相同第一个值的元素求和

    我正在尝试找到一种有效的方法来执行以下操作 我有这个样本 sample no 2 6 ja 5 7 no 4 9 ja 10 11 ap 7 12 并且需要 res no 6 15 ja 15 18 ap 7 12 即对第一个元素相同的子列
  • 当使用浮点数和双精度数时,c 中的 -0.0000 是多少?

    include