NSNumber floatValue 不等于 NSNumber 值

2023-11-30

第一篇文章在这里。 NSNumber 的 floatValue 方法有问题——不知何故,它返回一个不精确的数字。问题是这样的:我将一堆 NSNumber 存储在一个数组中,如下所示:

NSArray *a = [NSArray arrayWithObjects:
    [NSNumber numberWithFloat:0.04f],
    [NSNumber numberWithFloat:0.028f], 
    [NSNumber numberWithFloat:0.016f],
    [NSNumber numberWithFloat:0.004f],
   nil];

然后我尝试检索第一个值(例如): NS编号n = (NS 编号) [a objectAtIndex:0]; CGFloat f = [n floatValue];

在调试器中,n 显示的值为 0.04(在摘要列中),但 f 显示的值为 0.0399999991。我在这里做错了什么?

感谢大家。


你没有做错任何事。这不是一个具体的问题NSNumber or CGFloat, 任何一个。浮点数是非常普遍的,它基于 2 的幂,而不是 10 的幂。你应该阅读这个明确的文章 or 维基百科文章.

重点是,标准浮点数只能准确表示 1/2、1/4、1/8、... 之和。 1/10 不是。因此,您无法使用标准浮点数完全准确地表示 0.1。

如果您确实需要处理它,可以使用处理有理分数或十进制浮点数的例程。

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

NSNumber floatValue 不等于 NSNumber 值 的相关文章

  • 如何检查 NSNumber 中的空值

    首先我承认我的无知 在我从事项目的几个月里 我已经学到了关于 Objective C 的一切 我还发现 Objective C 似乎使我使用过的任何其他语言中的简单问题变得复杂 这非常令人沮丧 这个问题就是一个例子 在第一次运行中 我的应用
  • NSNumber floatValue 不等于 NSNumber 值

    第一篇文章在这里 NSNumber 的 floatValue 方法有问题 不知何故 它返回一个不精确的数字 问题是这样的 我将一堆 NSNumber 存储在一个数组中 如下所示 NSArray a NSArray arrayWithObje
  • NSNumber 给出错误的 int 值

    我有一个获取 cookie 的程序 此 cookie 的一个参数是 NSNumber 所以我将其保存到数据库中 sqlite3 bind int addStmt 2 HEREisNSNUMBER 将该值保存为 cookieObj creat
  • Swift 在 0 和 1 之间随机浮动

    在 Swift 中 我试图获得 0 和 1 之间的随机浮点数 但我似乎无法让类型转换起作用 func randomCGFloat gt CGFloat return CGFloat arc4random UINT32 MAX 我收到 CGF
  • Swift 中的“'CGFloat' 无法转换为 'Double'”错误 (iOS)

    我正在尝试用 Swift 将图像切成 9 块 我收到此错误 CGFloat 无法转换为 Double 当我输入时出现此错误i or j在两个变量中 下面是用于剪切图像的部分代码 for i in 1 3 for j in 1 3 var i
  • 如何将 NSNumber 转换为 NSString

    所以我有一个NSArray myArray 与NSNumbers and NSStrings 我需要它们在另一个UIView所以我就这样 void tableView UITableView tableView didSelectRowAt
  • NSMutableArray:无法识别的选择器发送到实例

    我正在尝试使用 NSMutableArray 的 NSMutableArray 存储数组 int 9 9 其中我存储数组中的 81 个整数 void awakeFromNib initialization matrix for int i
  • Xcode 调试:查看 NSNumber 的值?

    是否可以在变量监视窗口中的调试器数据提示中看到 NSNumber 的数值 我在 NSNumber 中存储一个整数值 并希望在调试期间看到该值 我已经在调试器中尝试了一些数据格式化程序 但没有太大帮助 打开调试器视图并在摘要列中输入 int
  • Swift Double 无法转换为 CGFloat

    我试图画一个简单的圆圈 当我到达以下行时 我收到错误 Double is Not Convertable to CGFloat under thestartAngle 0 0 path addArcWithCenter center rad
  • iOS 8 数字转换/格式错误? (无法重现)

    以下方法从 UITextField 获取输入并设置其格式以供显示 该代码多年来一直完美运行 但刚刚在使用 iOS 8 1 的 iPhone 6 Plus 上报告了一个问题 对于用户来说每次都会发生这种情况 但我无法重现它 我相信这与 iOS
  • 将 (u)int64_t 转换为 NSNumber

    所以本质上我的问题是这样的 我正在使用 uint64 t 对象作为键创建一个 NSMutableDictionary 还有比这样做更好的方法来创建它们吗 uint64 t bob 7 NSNumber bobsNumber if LP64
  • 判断 NSNumber 是否为 NaN

    如何判断可可是否NSNumber表示 NaN 不是一个数字 例如 当我解析具有无效 非数字 内容的字符串时 就会出现这种情况 所以 我发现类属性 NSDecimalNumber notANumber 就是为了这个目的 在某些语言中 NaN
  • 获取 NSNumber 的类型

    我想获取 NSNumber 实例的类型 我发现http www cocoadev com index pl NSNumber http www cocoadev com index pl NSNumber this NSNumber myN
  • 目标 c:检查是否是整数/整数/数字

    在 Objective C 中 我如何检查字符串 NSNumber 是整数还是 int 如果您想确定是否NSString是否有数值 尝试使用NSNumberFormatter BOOL stringIsNumeric NSString st
  • iOS 将大数字转换为较小格式

    如何将所有超过 3 位的数字转换为 4 位或更少的数字 这正是我的意思 10345 10 3k 10012 10k 123546 123 5k 4384324 4 3m 四舍五入并不完全重要 但却是一个额外的优点 我已经研究过 NSNumb
  • 为什么 NSNumber 是不可变的?

    为什么 NSNumber 是不可变的 有充分的理由吗 因为现在我正在考虑创建自己的类只是为了可变性 一个数字是一个very基本数据类型 数字就是一个数字 如果你改变它 它就会变成别的东西 数字根本无法改变 与更复杂的数据相比 对象本身仍然代
  • 二元运算符“+”不能应用于两个 CGFloat 操作数?

    用 Swift 编码并得到上述错误 消息是否掩盖了其他内容 或者您 真的不能添加两个 CGFloat 操作数吗 如果不是 为什么 到底 不呢 EDIT 我想要做的代码没有什么特别的 有趣的是 上面的错误消息 VERBATIM 是 Swift
  • 将 NSNumber 与 0 进行比较不起作用?

    我的应用程序中有一个 JSON 解析器 我将值加载到detailDataSourceDict 变量中 当我尝试获取数组的 valueForKey 并尝试将其与 0 进行比较时 它永远不会起作用 这是我的代码 if indexPath row
  • 在 Swift 中将 Int 更改为 CGFloat 以返回 heightForRowAtIndexPath tableview 函数

    我确信我错过了一些非常简单的东西 但我就是无法让它发挥作用 我会尽力更好地解释我正在做的事情 以帮助其他遇到同样问题的人 这是我的职能 func tableView tableView UITableView heightForRowAtI
  • NSNumber numberWithInt 在数字 >= 13 上崩溃

    我对 Objective C 还很陌生 我已读完类似的问题 https stackoverflow com questions 2533355 nsnumber 13 wont retain everything else will但我不知

随机推荐

  • Lua随机数? [复制]

    这个问题在这里已经有答案了 如何生成每次运行脚本时都不同的随机整数 我目前正在做一个 不可能的测验 它使用随机数从表格中选择一个问题 每次我运行脚本时 问题的顺序都是相同的 我还使用 table remove 在提出问题后从表中删除问题 然
  • 明确共享不适用于帖子 - Facebook Android SDK Open Graph 故事

    我目前正在使用 Facebook Android SDK 3 19 1 将开放图谱故事发布到我们用户的时间线 该故事已添加到用户的活动日志中 但不会显示在他们的时间线上 我的故事有一个自定义操作和对象 并且我已为我的操作设置了 显式共享 选
  • 如何根据R中csv文件的列标题删除某些列?

    我已将 csv 文件加载到 R 中 文件中有 10 列 我想将第 1 3 5 列保存到一个新文件中 删除其他列的命令行是什么 我想保存新表 应该使用什么命令行 首先 我来回答你的问题 如果d您的数据框是从您的文件加载的 那么 d subse
  • 什么是 32 位和 64 位 C++ 代码?

    我试图从注册表项获取一个值 最终的程序必须在 32 位和 64 位机器上运行 到目前为止的代码是 HKEY hKey LONG Result1 LONG result2 Result1 RegOpenKeyEx HKEY CLASSES R
  • C 赋值语句的求值顺序

    我遇到过跨平台代码在基本赋值语句上表现不同的情况 一个编译器首先评估左值 然后评估右值 然后评估赋值 另一个编译器首先执行右值 然后执行左值 然后进行赋值 如果左值影响右值的值 这可能会产生影响 如下例所示 struct MM int m
  • 在 HTML 中标记文本

    我有一些纯文本和html 我需要创建一个 PHP 方法 它将返回相同的 html 但使用 span class marked 在文本的任何实例之前和 span 在它之后 请注意 它应该支持 html 中的标签 例如 如果文本是blabla所
  • 将 MvvmCross 升级到 5.2 在 CustomAndroidPresenter 上显示错误

    将 MvvmCross 从 5 1 升级到 5 2 后 我的 CustomAndroidPresenter cs 抛出构建错误 是什么原因造成的 CustomAndroidPresenter cs namespace TestPrjDroi
  • 暂停和恢复可观察流,请提出更好的选择

    我需要听来自可观察对象的项目流 当出现某些条件时 将对项目执行异步任务 并且组件将处于 忙碌 状态 直到该任务完成 我想暂停处理订阅中的项目 直到该任务完成 因为后续项目的处理取决于结果 然后从序列中的下一个项目恢复 而不会造成任何损失 下
  • 我可以在 Android 操作系统应用程序中使用的数据库大小是否有限制?

    我长期以来一直想构建一个 Android 应用程序 但我只是没有时间尝试学习如何制作它 所以我将其外包给印度一家信誉良好的公司 我的应用程序是一个非常简单的数据库驱动的阅读器应用程序 最初 开发公司说我的应用创意没有问题 他们会在两周内完成
  • 雄猫。该解析器不支持规范 null 版本 null

    我尝试在 oracle linux tomcat 7 和 jdk1 7 上运行 Web 应用程序 但在 tomcat 重新启动后加载第一页时出现异常 该异常仅在第一次应用程序页面加载时发生 应用程序是在jdk1 6上开发的 在服务器上安装了
  • Powershell网站自动化按钮点击登录

    所以我是 powershell 的新手 我为了好玩构建了一些脚本 但陷入了一个我似乎无法弄清楚的脚本 我正在尝试自动单击 继续 按钮 但不知道该怎么做 我已经尝试了我能想到的一切 有任何想法吗 username username passw
  • 如何在 Google Chrome JavaScript 控制台中打印调试消息?

    如何在 Google Chrome JavaScript 控制台中打印调试消息 请注意 JavaScript 控制台与 JavaScript 调试器不同 他们有不同的语法 AFAIK 所以printJavaScript 调试器中的命令在这里
  • 如何使用 file_get_contents() 加载远程文件?

    现在这让我有点挠头 我正在尝试从远程 URL 获取文件 我可以保存本地文件的内容 但不能保存远程文件的内容 这有效 file put contents file1 xml file get contents file2 xml 这不会 fi
  • 配置中的 req_extensions 和命令行上的 -extensions 有什么区别?

    示例 openssl root ca 配置来自OpenSSL 食谱定义如下 p40 req req extensions ca ext ca ext 稍后 p43 生成根 ca 密钥 然后生成根 ca 自签名证书 openssl req n
  • 错误:无法加载默认凭据(Firebase 函数到 firestore)

    我正在尝试为 Firebase Cloud Functions 编写一个 onCall 函数 该函数在 firestore 数据库上执行高级查询任务 即根据 AutoML 自然语言检查文本查询以获取类别等 但在尝试查询来自函数的数据库 Er
  • ActionScript MXML

    看起来我可以同时使用组件
  • 读取带有 chrome 扩展名的本地文件的内容

    我正在为 chrome 浏览器开发一个扩展 我使用 KangoExtensions 框架 该扩展是用 JavaScript 编写的 我想读取位于本地文件系统上的文件的内容 实现这个最简单的方法是什么 如果您已经知道文件系统中文件的路径 则只
  • 使用WebClient访问本地文件

    我开发了一个 C 应用程序 需要通过 HTTP FTP 以及有时还通过本地文件 file 访问许多不同的内容源 我希望有一个统一的方式通过不同的协议访问这些文件 因此我选择了 WebClient 来执行此操作 它适用于 MSDN 上记录的所
  • ListView 行中的 ViewFlipper

    我有一个 ListView 其中每行都有一个 XML 视图 每行都有一个 ViewFlipper 和一个 Button 其目的是按下按钮并翻转 ViewFlipper 上的视图 问题是我无法让按钮翻转正确的 ViewFlipper 我正在
  • NSNumber floatValue 不等于 NSNumber 值

    第一篇文章在这里 NSNumber 的 floatValue 方法有问题 不知何故 它返回一个不精确的数字 问题是这样的 我将一堆 NSNumber 存储在一个数组中 如下所示 NSArray a NSArray arrayWithObje