首页 文章
  • 6 votes
     answers
     views

    为什么signbit(-0)返回0?

    来自Open Group Base Specifications Issue 7,IEEE Std 1003.1-2008: 当且仅当其参数值的符号为负时,signbit()宏才返回非零值 . 为什么 signbit(-0) 返回 0 ?我只想了解这一决定背后的逻辑 .
  • 381 votes
     answers
     views

    如何在javascript中格式化浮点数?

    在JavaScript中,当从float转换为字符串时,如何在小数点后只获得2位数?例如,0.34而不是0.3445434 .
  • 425 votes
     answers
     views

    如何很好地将浮动数字格式化为字符串而没有不必要的小数0?

    64位双精度可以精确地表示整数/ - 253 鉴于这一事实,我选择将double类型用作所有类型的单一类型,因为我的最大整数是无符号32位 . 但现在我必须打印这些伪整数,但问题是它们也与实际双打混合在一起 . 那么如何在Java中很好地打印这些双打? 我已经尝试了 String.format("%f", value) ,这很接近,除了我得到很多小值的尾随零 . 这是 %f...
  • 459 votes
     answers
     views

    如何处理JavaScript中的浮点数精度?

    我有以下虚拟测试脚本: function test(){ var x = 0.1 * 0.2; document.write(x); } test(); 这将打印结果 0.020000000000000004 ,而它应该只打印 0.02 (如果您使用计算器) . 据我所知,这是由于浮点乘法精度的误差 . 有没有人有一个很好的解决方案,以便在这种情况下我得到正确的结果 0.02 ?...
  • 568 votes
     answers
     views

    格式编号始终显示2位小数

    我想格式化我的数字,以便始终显示2位小数,在适用的地方进行舍入 . 例子: number display ------ ------- 1 1.00 1.341 1.34 1.345 1.35 我一直在用这个: parseFloat(num).toFixed(2); 但它显示 1 为 1 ,而不是 1.00 .
  • 537 votes
     answers
     views

    为什么Math.round(0.49999999999999994)会返回1?

    在以下程序中,您可以看到每个稍微小于 .5 的值都向下舍入,但 0.5 除外 . for (int i = 10; i >= 0; i--) { long l = Double.doubleToLongBits(i + 0.5); double x; do { x = Double.longBitsToDouble(l); System...
  • 108 votes
     answers
     views

    为什么C没有无符号浮点数?

    我知道,这个问题似乎很奇怪 . 程序员有时会想太多 . 请继续阅读...... 在C中,我使用了有符号和无符号整数 . 我喜欢这样一个事实:如果我执行诸如将有符号整数分配给无符号变量的事情,编译器会发出警告 . 如果我将带符号与无符号整数进行比较,我会得到警告 . 我喜欢这些警告 . 他们帮助我保持我的代码正确 . 为什么我们没有同样的豪华花车?平方根绝对不会返回负数 . 还有其他地方负浮动值没有...
  • -3 votes
     answers
     views

    考虑C中的浮动

    所以我调整了代码,似乎减去了一个缺陷 . 收缩现在是一个浮动,但没有返回正确的答案 . 当我试图缩小9例如它返回4.0而不是4.5 ...... 13返回6.0?新代码如下: 包括 int main() { / 变量定义: / int intValue,menuSelect,Results;浮动sResults; intValue = 1; //虽然是正数 while(intValue> 0...
  • 590 votes
     answers
     views

    HTML5中是否有浮点输入类型?

    根据html5.org,"number"输入类型的"value attribute, if specified and not empty, must have a value that is a valid floating point number." 然而它简直(在最新版本的Chrome中,无论如何),一个带有整数的“updown”控件,而不是浮点数:...
  • 2 votes
     answers
     views

    使用长双或只是双倍来计算pi?

    我正在使用长卷配方来计算pi . 我正在尝试更熟悉浮点数等 . 我有一个使用双打的工作程序 . 我的代码的问题是: 如果我使用double,pi只能精确到小数点后第7位 . 我不能让它变得更准确 . 如果我使用long double,则pi精确到小数点后第9位,但代码运行时间要长得多 . 如果我使用long double检查精度小于0.00000001,则pi返回值9.4246775 . ...
  • 459 votes
     answers
     views

    如何处理JavaScript中的浮点数精度?

    我有以下虚拟测试脚本: function test(){ var x = 0.1 * 0.2; document.write(x); } test(); 这将打印结果 0.020000000000000004 ,而它应该只打印 0.02 (如果您使用计算器) . 据我所知,这是由于浮点乘法精度的误差 . 有没有人有一个很好的解决方案,以便在这种情况下我得到正确的结果 0.02 ?...
  • 0 votes
     answers
     views

    与IEEE-754相比,内存中的浮点模式是否按位反转?

    我写了一个程序来打印出C中浮点数的位模式 . 所以我希望得到一个标准的IEEE-754位模式,即:1符号位| 8个EXP位| 23个尾数位 当我得到输出并将结果放到IEEE-754转换器时,数字是错误的 . 当我一点一点颠倒顺序时,数字是正确的 . 所以我要问的是:我找到了一个线程,我在其中了解到该模式可能被BYTE-WISE反转,但无处可寻,我发现它完全被BIT-WISE反转 . 请问有人可以这...
  • 1 votes
     answers
     views

    将stdin中的整数放入列表中

    我想把stdin中收到的一些浮点数放在列表中 . 但是使用以下程序只返回一个对象 . 如何将我收到的花车列入清单? 输入如下:0.1 0.1 0.3 0.4 0.1 0.4 0.2 0.1 0.1 0.2 0.5 0.05 0.15 0.1 0.2 0.6 0.1 0.1 0.1 0.1 0.5 0.2 0.2 0.05 0.05 def main(): for line in sys.stdin...
  • 63 votes
     answers
     views

    为什么C中的double会打印比C更少的十进制数字?

    我在C中有这个代码,我已经宣布0.1为double . #include <stdio.h> int main() { double a = 0.1; printf("a is %0.56f\n", a); return 0; } 这就是它打印的内容, a is 0.10000000000000001000000000000000000...
  • 243 votes
     answers
     views

    我什么时候应该使用double而不是decimal?

    我可以说使用 double (或 float )而不是 decimal 有三个好处: 使用较少的内存 . 更快,因为处理器本身支持浮点数学运算 . 可以代表更大范围的数字 . 但这些优势似乎只适用于计算密集型操作,例如建模软件中的操作 . 当然,在需要精确度时,不应使用双精度数,例如财务计算 . 那么在"normal"应用程序中选择 double (或 floa...
  • 288 votes
     answers
     views

    为什么更改总和顺序会返回不同的结果?

    为什么更改总和顺序会返回不同的结果? 23.53 + 5.88 + 17.64 = 47.05 23.53 + 17.64 + 5.88 = 47.050000000000004 Java和JavaScript都返回相同的结果 . 据我所知,由于浮点数用二进制表示的方式,一些有理数(如1/3 - 0.333333 ......)无法精确表示 . 为什么简单地改变元素的顺序会影响...
  • 37 votes
     answers
     views

    将Haskell Word32 / 64中的IEEE 754浮点转换为Haskell Float / Double

    问题 在Haskell中, base 库和Hackage包提供了几种将二进制IEEE-754浮点数据转换为提升的 Float 和 Double 类型的方法 . 但是,这些方法的准确性,性能和可移植性尚不清楚 . 对于旨在(反)序列化跨平台二进制格式的GHC目标库,处理IEEE-754浮点数据的最佳方法是什么? 方法 这些是我在现有库和在线资源中遇到的方法 . FFI Marshaling 这是da...
  • 30 votes
     answers
     views

    现代x86成本模型

    我正在编写一个带有x86后端的JIT编译器,并且随时学习x86汇编器和机器代码 . 大约20年前我使用ARM汇编程序,并对这些体系结构之间的成本模型差异感到惊讶 . 具体来说,内存访问和分支在ARM上很昂贵,但在x86上等效的堆栈操作和跳转很便宜 . 我相信现代x86 CPU比ARM内核做更多的动态优化,我发现很难预测它们的影响 . 编写x86汇编程序时要记住什么是好的成本模型?哪些指令组合便宜又...
  • 6 votes
     answers
     views

    如何计算任意功率/根?

    我有一个应用程序,需要将一个数字提高到一个分数幂 . 目标平台是一个FPGA,我可以得到它的FPU大小的估计,但我需要一个算法,只是为了可行性研究将数字提高到一个分数功率 . 我假设浮点数是最坏的情况,我预计在实践中我们将能够使用捷径,但是现在我想表明我们可以实施最坏情况 . 以为我会问这里,看看是否有任何常见的方法可以结账 . 我知道有这样做的软件方法,我想要一个合理有效的算法开始 . 我会担心...
  • 286 votes
     answers
     views

    如何获得浮点范围之间的随机数?

    randrange(start, stop) 只接受整数参数 . 那么我如何在两个浮点值之间得到一个随机数?
  • 87 votes
     answers
     views

    任何JVM的JIT编译器都会生成使用向量化浮点指令的代码吗?

    假设我的Java程序的瓶颈确实是计算一堆矢量点积的一些紧密循环 . 是的我已经分析过,是的,它是瓶颈,是的,它是重要的,是的,这就是算法的方式,是的,我运行Proguard来优化字节码等 . 这项工作基本上是点产品 . 在,我有两个 float[50] ,我需要计算成对产品的总和 . 我知道存在处理器指令集以快速和批量地执行这些操作,如SSE或MMX . 是的我可以通过在JNI中编写一些本机代码来...
  • 6 votes
     answers
     views

    确定浮点平方根

    如何确定浮点数的平方根? Newton-Raphson方法是一种好方法吗?我也没有硬件平方根 . 我也没有硬件鸿沟(但我实现了浮点除法) . 如果可能的话,我宁愿尽可能减少分歧的数量,因为它们太贵了 . 另外,应该是减少迭代总数的初始猜测??? 非常感谢!
  • 1 votes
     answers
     views

    32位,64位和80位浮点IEEE-754的可表示值范围?

    在C标准中它说浮动文字: 如果缩放值不在其类型的可表示值范围内,则程序格式错误 . 缩放值是重要部分乘以10 ^指数部分 . 在x86-64下: float 是单精度IEEE-754 double 是双精度IEEE-754 long double 是80位扩展精度IEEE-754 在这种情况下,这三种类型中每种类型的可重复值的范围是多少?这记录在哪里?或者如何计算?
  • 1 votes
     answers
     views

    计算此平方根时,什么被接受为IEEE-754正确的结果?

    我有一个Newton-Raphson平方根算法,我使用它计算输入值的单精度平方根 . 然而,使用我输入的测试平台,我发现某些输入值不会收敛到最接近实际平方根的答案 . 当我说实际平方根时,我的意思是你得到的结果比32位IEEE-754更精确 . 结果,我想知道在IEEE-754中执行平方根时所获得的正确值是什么 . 这个论坛上的一些人告诉我,最接近的值不一定是最正确的,这就是我要问的原因 . 当计...
  • 3 votes
     answers
     views

    将单精度除法实现为双精度乘法

    问题 对于实现精确IEEE 754算法的C99编译器, f , divisor 类型 float 的值是否存在 f / divisor != (float)(f * (1.0 / divisor)) ? 编辑:通过“实现精确的IEEE 754算术”我的意思是一个正确定义FLT_EVAL_METHOD为0的编译器 . 上下文 提供符合IEEE 754标准的浮点的C编译器只能通过单次精度乘以逆来用常量...
  • 1 votes
     answers
     views

    FPU - 符合IEEE 754-2008标准的加法器功能

    我正在尝试开发一个FPU(符合ieee 754)作为毕业项目,我在sum函数方面遇到了一些麻烦 . 在过去的两周里,我正在调查并在纸上进行一些操作(其中很多),目的是了解这个标准是如何工作的 . 所以,这是一个问题....我很困惑,因为当我用相同的符号执行数字添加时,我得到了正确的结果但是在添加符号相反的数字时我遇到了问题 . 例如,添加-1200.23和500.125 . ieee 754-2...
  • 2 votes
     answers
     views

    IEEE-754:“最小”溢出条件

    Before I start, just some background information: 我正在使用编译器标准数学库(符合IEEE-754)在Keil uVision3中编译的ARM7微控制器(LPC2294 / 01)上运行裸机应用程序 . The issue: I 'm having trouble wrapping my head around what exactly cons...
  • 0 votes
     answers
     views

    如何在verilog中进行(ieee 754浮点)有效分割

    我正在尝试在Verilog中编写IEEE 754单精度浮点除法格式的代码,然后合成以便能够在ZedBoard上实现它下面的一个显示了IEEE 754除法的计算公式 X3= (X1/X2) = ((-1)^S1 (M1 x 2E1)) / ((-1) S2 (M2 x 2E2)) = (-1)^S3 (M1/M2) 2 (E1-E2) Here how to find ...
  • 292 votes
     answers
     views

    为什么NaN - NaN == 0.0与英特尔C编译器?

    众所周知,NaNs在算术中传播,但我找不到任何演示,所以我写了一个小测试: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg...
  • 1 votes
     answers
     views

    小数点表示不好 - ValueError:无法将字符串转换为float:'.'

    我有从美联储下载的SP500数据,一个非常简单的.csv文件,有两个字段;日期和价格 . 当我执行 pd.read_csv() 加载到数据帧时,我得到两个错误: TypeError:根据规则'safe'ValueError,无法将数组从dtype('O')转换为dtype('float64'):无法将字符串转换为float:' . ' 它似乎在告诉我小数点' . '在价格领域抛出错误 . 在将...

热门问题