c++浮点计算在android和iOS中是否一致?
Is c++ floating point calculation consistent in android and iOS?
例如,如果我有一个c++函数有这么多浮点运算(例如:除法,sqrt,sin,cos…),但没有rand(),我能确保它在android和iOS中得到相同的结果吗?
例如,函数findValue(123.456)在android中返回3.52111,但在iOS中返回3.52205 ?它们根本不需要保持一致,因为c++并没有强制使用特定的浮点类型。
(尽管通常情况下,浮点双精度类型将是IEEE754类型:Java坚持的类型)
如果包含
行 static_assert(std::numeric_limits<double>::is_iec559, "Not IEEE754");
,如果浮点数不是您期望的浮点数,则编译将失败。在没有断言的情况下,您可以确信算术运算将非常相似。
No。即使你有一个完全兼容的IEEE754 double
,也只能保证+-/*和sqrt
是正确的,直到最后一位。sin
和cos
通常有错误,尽管这些错误对于sin(123.456)
来说仍然相当小。但如果sin(123456.789)
是正确的,那将是一个惊喜。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- 是否有可以在iOS上运行的API来更改现有视频的每秒帧数?
- iOS SDK 是否可以与动态库一起交付
- 是否可以从IOS项目中的cpp文件获取文件路径
- 是否需要XCode才能在Visual Studio上使用C++开发iOS应用程序
- 是否存在可以在iOS上运行的本地键值存储DB(与redis不同)
- Mac/IOS 是否使用与 Linux 内核相同的 sys/socket.h?
- ios::app 模式和 fstream::write 是否在某种程度上彼此不兼容
- 应用商店是否允许使用带有嵌入式 dylibs 的 iOS 8 应用程序
- 我是否必须在Xcode iOS项目中释放C的内存分配
- 是否可以创建一个可以在ios移动平台和windows桌面平台之间运行的应用程序,而无需使用web界面
- 我的iOS金属计算内核是否存在编译器错误,或者我遗漏了什么
- 是否有适用于Windows的iTunes C++库允许访问USB连接的iOS设备的文件系统?
- 如何在iOS上检查指针是否指向堆或堆栈内存
- 是否有一个(比较高级的)c++库来创建在iOS和Android上运行的pdf文档?
- ifstream在二进制模式下打开是否需要ios::in?
- Visual Studio中的静态编译库(.lib)是否可以链接到iOS应用程序中?
- c++浮点计算在android和iOS中是否一致?
- 是否有可能使用各种编译器应用程序访问iOS上的文件?