floating-point相关内容
..
所以我搜索了这个主题,并没有发现任何与它真正相关的内容. 我试图查看这个简单代码背后的程序集: int main(int argc, char *argv[]){双 d = 1.0;浮动 f = static_cast(d);系统(“暂停");返回0;} 这是(使用 Visual Studio 2012): 15: double d = 1.0;000000013FD7C16D mo
..
我想在php中将浮点值(例如:1.0000124668092E+14)转换为整数,php.output中最好的方法是“100001246680920" 解决方案 转化是什么意思? casting*: (int) $float 或 intval($float) 截断:floor($float)(向下)或 ceil($float)(向上) 舍入:round($float) - 有额外
..
可能重复: 浮点比较 我对 C/C++ 中浮点数的准确性有疑问.当我执行下面的程序时: #include int main (void) {浮点数 = 101.1;双 b = 101.1;printf ("a: %f\n", a);printf ("b: %lf\n", b);返回0;} 结果: a: 101.099998b: 101.100000 我相信 flo
..
就在最近,GCC 4.6.0 与 libquadmath 一起问世.不幸的是,GNU 支持 Fortran,但不支持 C 或 C++(包含的只是 .so).我还没有找到在 C++ 中使用这些新功能的方法,但是,GNU C 确实支持 __float128 类型以保证四倍精度浮点数.GNU C 似乎不支持 libquadmath 中的数学函数,例如 fabsq(绝对值,q 是 quad 的后缀).
..
我有以下代码: double x = 0;{ ...做东西 ...}如果(x == 0){} 我总是被教导不要检查浮点数是否相等.检查它是否等于零有什么不同吗? 解决方案 你不应该检查浮点数是否相等的原因是浮点数不是完全精确的——存储中有一些数字不准确,比如那些这延伸到尾数和重复小数太远(请注意,我正在谈论以2为底的重复小数).您可以将这种不精确性视为“四舍五入".超出浮点数精度的数字
..
所以,我们看到了很多斐波那契问题.我个人讨厌他们.很多.不止很多.我认为如果我们可以让任何人都无法再次将其用作面试问题,那就太好了.让我们看看如何接近 O(1) 我们可以得到斐波那契. 这是我的开场白,几乎是从维基百科抄来的,当然还有足够的空间.重要的是,这个解决方案对于任何特别大的 fib 都会引爆,并且它包含对幂函数的相对幼稚的使用,如果你的库不好,它在最坏的情况下将其置于 O(log(
..
我希望能够使用 printf 编写一个如下所示的时间字符串:1:04:02.1 hours. 当我尝试写这样的东西时: printf("%d:%02d:%02.1f 小时\n", 1, 4, 2.123456); 我明白了: 1:04:2.1 小时 是否可以在浮点格式中添加前导零? 解决方案 使用 %f 格式说明符,“2"被视为最小字符数,而不是位数在小数点之前.因此,您必须将其
..
当唯一允许使用的浮点指令是 387 时,几乎不可能 (*) 以合理的成本提供严格的 IEEE 754 语义.当希望保持 FPU 在完整的 64 位有效位上工作以便 long double 类型可用于扩展精度时,尤其困难.通常的“解决方案"是以唯一可用的精度进行中间计算,并在或多或少定义明确的情况下转换为较低的精度. 最新版本的 GCC 根据 Joseph S. Myers 在 2008 年发
..
我有一段代码的行为不同,具体取决于我是通过字典获取转换因子还是直接使用它们. 以下代码将打印 1.0 == 1.0 ->错误 但如果您将 factors[units_from] 替换为 10.0 并将 factors[units_to ] 替换为 1.0/2.54它将打印 1.0 == 1.0 ->是的 #!/usr/bin/env python基地='厘米'因素 = {“厘米":1
..
该库的许多实现都深入到所有弧函数的 FPATAN 指令.FPATAN 是如何实现的?假设我们有 1 位符号,M 位尾数和 N 位指数,那么得到这个数的反正切的算法是什么?应该有这样的算法,因为FPU做的. 解决方案 三角函数确实有非常丑陋的实现,它们很hacky并且做了大量的摆弄.我认为在这里很难找到能够解释实际使用的算法的人. 这是一个 atan2 实现:https://sourc
..
我的理解是否正确,即使用 Ruby BigDecimal 类型(即使具有不同的精度和比例长度)应该准确计算,还是我应该预料到浮点恶作剧? 我在 Rails 应用程序中的所有值都是 BigDecimal 类型,我看到一些错误(它们确实有不同的十进制长度),希望这只是我的方法而不是我的对象类型. 解决方案 使用浮点运算时有两个常见的陷阱. 第一个问题是Ruby浮点有固定的精度.在实
..
我目前正在查看执行多精度浮动的 代码点算术.为了正常工作,该代码需要在明确定义的点处将值减少到它们的最终精度.因此,即使将中间结果计算到 80 位扩展精度 浮点寄存器,在某些时候它也必须被四舍五入到 64 位双精度 以供后续操作. 代码使用宏INEXACT来描述这个需求,但没有完美的定义.gcc 手册 提到 -fexcess-precision=standard 作为强制转换和赋值操作定义明
..
我有两个整数 x 和 y.我需要计算 x/y 作为结果,我想获得浮动.例如,作为 3/2 的结果,我想要 1.5.我认为最简单(或唯一)的方法是将 x 和 y 转换为浮点类型.不幸的是,我找不到一个简单的方法来做到这一点.你能帮我解决这个问题吗? 解决方案 您只需要将至少一个操作数强制转换为浮点数: float z = (float) x/y; 或 float z = x/(floa
..
我将是第一个承认我对低级编程的整体知识有点稀疏的人.我了解许多核心概念,但我不经常使用它们.话虽如此,我对 dtoa.c 需要多少代码感到非常震惊. 在过去的几个月里,我一直致力于 C# 中的 ECMAScript 实现,我一直在减慢填补引擎中的漏洞.昨晚我开始研究 ECMAScript 规范 (pdf).在 9.8.1 部分,NOTE 3 提供了一个到 dtoa.c 的链接,但我正在寻找一
..
假设我真的很需要内存并且想要更小的范围(类似于 short 与 int).着色器语言已经支持 half 用于具有一半精度的浮点类型(不仅仅是来回转换以使值介于 -1 和 1 之间,即返回一个像这样的浮点数:shortComingIn/maxRangeOfShort).是否已经存在 2 字节浮点数的实现? 我也有兴趣知道为什么没有 2 字节浮点数的任何(历史?)原因. 解决方案 Re:
..
我正在读取一个带有浮点数的文本文件,所有这些都带有 1 或 2 个小数点.我正在使用 float() 将一行转换为浮点数,如果失败则引发 ValueError .我将所有浮点数存储在一个列表中.打印出来时,我想将其打印为小数点后 2 位的浮点数. 假设我有一个带有数字 -3,65, 9,17, 1 的文本文件.我阅读了每个文件,并将它们转换为浮点数并将它们附加到列表中.现在在 Python
..
当在 iPhone 应用程序中使用 double 或 float 数据类型时,我遇到了 ">=" 和 "= 4.2"之类的比较是假而不是真.如何避免这个问题? 解决方案 当一个变量被
..
如何手动将十进制(以 10 为基数)数字更改为 IEEE 754 单精度浮点格式?我知道它由三个部分组成,一个符号,一个指数和一个尾数.我只是不完全理解最后两部分实际代表什么. 解决方案 找到比你的数字小的 2 的最大幂,例如,如果你从 x = 10.0 开始,那么 23 = 8,所以指数为 3.指数偏置 127,因此这意味着指数将表示为 127 + 3 = 130.尾数为 10.0/8
..
我创作是为了好玩,但我仍然想认真对待它,这是一个托管各种测试的网站.我希望通过这些测试收集统计数据. 一些数据将包括测试完成时间的百分比.我可以轻松计算测试的百分比,但我希望返回真实数据,因为我存储了有关完成测试的各种不同值. 大多数值都是 PHP 浮点数,所以我的问题是,如果我想要真正的统计数据,我应该将它们存储在 MYSQL 中作为 FLOAT、DOUBLE 还是 DECIMAL.
..