C 程序未正确添加浮点数

2023-12-06

我有一个看起来像这样的方法:

float * mutate(float* organism){   
    int i;
    float sign = 1;
    static float newOrg[INPUTS] = {0};

    for (i = 0;i<INPUTS;i++){
        if (rand() % 2 == 0) {
            sign = 1;
        } else {
            sign = -1;
        }
        float temp = (organism[i] + sign);
        printf("bf: %f af: %f diff: %f sign: %f sign2: %f temp: %f\n\n",
            organism[i], (organism[i] + sign), (organism[i] + sign)-organism[i],
            sign, sign+sign, temp);
        newOrg[i] = organism[i] + sign;
    }

    return newOrg;
}

When sign前两个不为0"%f"s 是相同的,第三个是 0,将总和放入变量中也没有帮助。这让我很困惑!如果需要,我可以发布完整的代码。

Output:

bf: 117810016.000000 af: 117810016.000000 diff: 0.000000 sign: 1.000000 sign2: 2.000000 temp: 117810016.000000

有限精度float.

A typical float can only represent about 232 different numbers. 117,810,016.0 and 1.0 are two of them. 117,810,017.0 is not. So the C sum of 117810016.0 + 1.0 results in the "best" answer of 117810016.0.

Using a higher precision type like double often will extend the range of +1 exact math, but even that will not be exact with large enough values (typically about 9.0*10e15 or 253).

If code is to retain using float, suggest limiting organism[i] to values to the inclusive range or ±8,388,608.0 (223).

也许代码可以简单地使用整数类型来完成此任务,例如long long.

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

C 程序未正确添加浮点数 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 是否有在 docker alpine linux 基础映像上设置 glibc 的最佳实践?

    是否有在 docker alpine linux 基础映像上使用正确路径设置 glibc 的最佳实践 以便任何生成的进程都可以正确引用已安装 libc 库的位置 就在这里 我使用了定制的 glibc 在其上安装了 JRE 你可以找到它her
  • 无需身份验证即可从 Dropbox 链接获取元数据

    我想检查版本更改 获取带有保管箱上共享链接的文本文件的元数据 我不会使用 dropbox api 因为它会让用户使用自己的帐户 我希望他们链接到我的帐户 但我无法手动执行此操作 因为我稍后可能会更改密码 所以 没有身份验证令牌 只需从保管箱
  • 检测Firebug的Javascript?

    检测用户是否启用 Firebug 的可靠方法是什么 原答案 检查是否有console对象 仅使用 Firebug 创建 如下所示 if window console window console firebug Firebug is ena
  • FitNesse 应用程序配置

    我很难理解 http www syterra com Fit AppConfigFiles html 如果我的应用程序和装置位于 c Projects App 中 并且 FitNesse 是从 c Projects Sandbox FitN
  • 使用 wxpython 创建菜单

    我使用以下方法创建了一个菜单 fileMenu wx Menu fileMenu Append ID NEW New tCtrl N Creates a new file 我可以通过单击菜单上的 新建 或单击 Ctrl N 来访问 新建 我
  • 如何处理ajax调用的json响应

    我的网络服务返回一个 JSON 对象 如下所示 abc xyz option 3 即当我将此地址放入 Chrome 浏览器中时http localhost 8088 rest getOptions我得到上面 我正在尝试在浏览器中阅读此内容
  • 滚动线性回归

    我需要一次执行 X 个周期的滚动线性回归 我有以下熊猫数据框 value 0 4354 1 7564 2 657 3 7876 我可以使用 scipy 对整个数据框执行线性回归 如下所示 from scipy import stats sl
  • 使用 AzureReader2 插件的 Azure ImageResizer 无法调整大小

    EDIT 我让它工作 但我必须添加 RemoteReader 插件 当我从项目中删除 AzureReader2 插件时 它仍然可以工作 这是有道理的 但是 AzureReader2 插件对我有什么好处 原问题 我已经完成了概述的所有事情he
  • js中如何实现排序?

    我有一个像这样的数组 var temp rank 3 name Xan rank 1 name Man rank 2 name Han 我试图按如下方式对其进行排序 temp sort function a a rank 但它不起作用 任何
  • Apache / Tomcat 中使用 mod_jk 的多个子域

    我目前正在尝试为从一台 Tomcat 服务器运行的两个单独的应用程序设置两个子域 但我很难让它继续下去 如果没有子域 我可以为一个虚拟主机配置两个挂载点 并能够以这种方式访问 应用程序 看起来像 http url confluence 但这
  • Java中如何访问一个对象的父对象?

    看看这个例子 class Parent Child child new Child Random r new Random class Child public Child access a method from Random r fro
  • jQuery 检查图像是否已加载

    我需要有关以下不起作用的代码的帮助 var timeoutID 0 var currentImage 0 first image is position 0 in arrImages array var arrImages bla bla
  • 声明变量时出现 NoSuchMethodError

    我在使用 Spark 和 Scala 时遇到了一个奇怪的错误 我有一段声明变量的代码 var offset 0 这会导致以下异常 java lang NoSuchMethodError scala runtime IntRef create
  • 了解包 geosphere 中 `areaPolygon()` 的输出

    From 这个问题我获得了很棒的功能areaPolygon 这给了我坐标多边形内的区域 然而 当我尝试该函数时 计算结果似乎很奇怪 我首先创建一组两点 require fields coords lt c 11 3697193956209
  • PHP exec() 通过浏览器执行时不会执行 shell 命令

    我有一个 PHP 脚本 它调用 exec 来执行将 PDF 转换为 JPG 的命令 该命令在 bash 中运行良好 为了抢占您最初的故障排除猜测 请注意以下事项 安全模式 关闭 包含 PDF 和脚本的目录的权限设置为 777 该目录也是写入
  • 如果Mysql复制时Master和Slave有不同的数据库,如何重新同步Mysql DB?

    Mysql Server1正在运行为MASTER Mysql Server2正在运行为SLAVE 现在数据库复制发生在MASTER to SLAVE Server2从网络中删除并在 1 天后重新连接 此后主库和从库的数据库不匹配 如何重新同
  • 将 Dictionary 转换为 IDictionary

    我有一个包含参数字典的类 public class Parameter IExecutionParameter IDesignerParameter public interface IExecutionSettings IDictiona
  • 如何获取本地网络内访问 ASP.NET Intranet 页面的用户的用户名?

    我们有一个 ASP NET Intranet 站点 可供物理上并登录到本地计算机的用户或通过 VPN 远程连接的用户使用 有没有一种方法可以根据用于登录本地计算机或用于 VPN 的名称自动获取访问该页面的用户的用户名 如果您在页面中使用 W
  • 是否可以删除mobile safari虚拟键盘中的表单助手?

    对于单一表单 UI 移动 safari 虚拟键盘中的表单助手没有提供太多价值 并且会减少视口中的可用空间 对于无法从中受益的表单 是否可以删除键盘的这一部分 本质上 您必须等到键盘响应 然后用力抓住并移除顶部的栏 它并不漂亮 也绝对不完美
  • C 程序未正确添加浮点数

    我有一个看起来像这样的方法 float mutate float organism int i float sign 1 static float newOrg INPUTS 0 for i 0 i