首页 > TAG信息列表 > ieee-754

Javascript-为什么这些二进制表示形式产生相同的数字?

根据文档,可以使用parseInt(string, base)将数字的二进制表示形式转换为数字本身. 例如, var number = parseInt("10100", 2); // number is 20 但是,请看下一个示例: var number = parseInt("1000110011000011101000010100000110011110010111111100011010000", 2); // number is

python-如何避免多列的numpy-array的精度不那么精确

我一直认为numpy uses是一种pairwise-summation,它也确保float32的高精度操作: import numpy as np N=17*10**6 # float32-precision no longer enough to hold the whole sum print(np.ones((N,1),dtype=np.float32).sum(axis=0)) # [17000000.], kind of expected 但是,如果矩

大量错误地在JavaScript中舍入

看到这段代码: <html> <head> <script src="http://www.json.org/json2.js" type="text/javascript"></script> <script type="text/javascript"> var jsonString = '{"id":7143412

Java中的双重算术和相等

这是一个奇怪的事(至少对我来说).此例程打印为true: double x = 11.0; double y = 10.0; if (x-y == 1.0) { // print true } else { // print false } 但是这个例程打印错误: double x = 1.1; double y = 1.0; if (x-y == 0.1) { // print true } else { // prin

浮点到二进制值(C)

我想在C中采用浮点数,如2.25125,以及填充二进制值的int数组,用于将浮点数存储在内存中(IEEE 754). 所以我可以取一个数字,最后得到一个带有二进制值的int num [16]数组: num [0]将为1num [1]将为1num [2]为0num [3]将为1等等… 将int放入数组并不困难,只需获取float的二进制值的过程

Java的’Double.MIN_NORMAL`和`Double.MIN_VALUE`之间的区别?

Double.MIN_NORMAL(在Java 1.6中引入)和Double.MIN_VALUE之间有什么区别?解决方法:答案可以在IEEE specification of floating point representation中找到: For the single format, the difference between a normal number and a subnormal number is that the leading bit of th

c – 所有整数值都完美地表示为双精度数吗?

参见英文答案 > Representing integers in doubles                                    5个 我的问题是,是否保证所有整数值都具有完美的双重表示. 请考虑以下打印“相同”的代码示例: // Example program #include <iostream> #include <str

Python float – str – float怪异

>>> float(str(0.65000000000000002)) 0.65000000000000002 >>> float(str(0.47000000000000003)) 0.46999999999999997 ??? 这里发生了什么? 如何将0.47000000000000003转换为字符串并将结果值转换为浮点数? 我在Windows上使用Python 2.5.4.解决方法:str(0.470000000000000

Java中的Float和double数据类型

浮点数据类型是单精度32位IEEE 754浮点数,双数据类型是双精度64位IEEE 754浮点数. 这是什么意思?什么时候应该使用float而不是double,反之亦然?解决方法:Wikipedia page就是一个很好的起点. 总结一下: > float以32位表示,带有1个符号位,8位指数和23位有效数字(或者从科学数字符号开始:2

用JavaScript或IEEE-754舍入怪癖?

我在我的一个单元测试中遇到了一个奇怪的问题,我在JavaScript中得到了意想不到的舍入结果: (2.005).toFixed(2) // produces "2.00" (2.00501).toFixed(2) // produces "2.01" 最初我怀疑这是一个Webkit唯一的问题,但它在Gecko中重复,这对我来说意味着它是ECMA-262或IEEE-754的预

c – 0除以无穷大保证为0吗?

根据this question,对于n!= 0,n / inf预计为零.当n == 0时怎么办?根据IEEE-754,(0 / inf)== 0总是如此吗?解决方法:在数学上,0/0是不确定的,0 / anything_else是零. IEEE-754的工作方式相同. 因此0 /无穷大将产生零. 0/0将产生NaN. 注意:并非所有C实现都支持IEEE浮点,而有些实现不完全

为什么python十进制库不返回某些输入的指定数量的重要数字

注意:这个问题大约是significant figures.这不是关于“小数点后的数字”或类似的问题. 编辑:这个问题不是Significant figures in the decimal module的重复.这两个问题是询问完全不同的问题.我想知道为什么函数about没有返回特定输入的期望值. Significant figures in the decimal m

Linux gcc(5.4.0)中的浮点数是否符合IEEE754规则?

我的编程环境是 gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.4) 我的代码如下: #include <stdio.h> typedef unsigned char *byte_pointer; void show_bytes(byte_pointer start, int len){ int i; for (i = 0; i<len; i++) printf(" %.2x", start[i]

c – 15-17 binary64的有效小数?

我从wikipedia中了解到,双数最多有15-17个有效小数 但是,对于下面的简单C程序 double x = std::pow(10,-16); std::cout<<"x="<<std::setprecision(100000)<<x<<std::endl; (为了测试它,使用this online shell),我明白了 x=9.999999999999999790977867240346035618411149408467

如何将十六进制字符串转换为解压缩的IEEE 754格式编号: –

使用Python 2.7.3:如何将十六进制字符串转换为解压缩的IEEE 754格式编号: – 我有一个这种形式的十六进制数据字符串: data = '38 1A A3 44' 我想通过使用struct.unpack将其转换为浮点数: fdata = struct.unpack('<f','\x38\xA1\xA3\x44') # fdata=1304.8193359375 是否有Pythoni

android内核libm pow(float,float)实现

我在pow调用(#include< math.h>)上测试了极端情况,特别是pow(-1,Inf). 在我的桌面(Ubuntu)上,我得到了结果1.0,这符合2008 IEEE浮点规范. 我在运行Android Gingerbread内核时运行相同的测试,然后返回NaN. 我环顾四周,可以看到在不同平台的标准库中确实存在很多pow的实现,在pow(-1,I

将Java Double.Max_VALUE与大双数进行比较,返回true

为什么这些简单的双重比较会返回真实? System.out.println(Double.MAX_VALUE == (Double.MAX_VALUE - 99 * Math.pow(10, 290))); System.out.println(new Double(Double.MAX_VALUE).equals(new Double(Double.MAX_VALUE - 99 * Math.pow(10, 290)))); 我知道它可能是IEEE 754精度

MySQL如何进行浮点加法的数学计算?

我用SELECT 0.1 0.2测试;用MySQL(MariaDB)查询,它返回了正确的答案 MariaDB [(none)]> SELECT 0.1 + 0.2; +-----------+ | 0.1 + 0.2 | +-----------+ | 0.3 | +-----------+ 1 row in set (0.000 sec) 由于IEEE 754所述的IEEE 754,浮点计算在大多数编程语言中是不准确的.

添加Float值的问题在java中

我有两个值 5042034.0 1425837.2 而我正在添加如下 float abc = (float) (5042034.0 + 1425837.2); 我期待6467871.2的结果 但我得到的是6467871.0 怎么能在浮动的帮助下得到6467871.2? 我试过了 float c = (float) (1.1 + 2.2) ; 我得到了一个结果:3.3 这背后的原因是什么?解

c# – 如何测试数值转换是否会改变值?

我正在执行一些数据类型转换,我需要将uint,long,ulong和decimal表示为IEEE 754双浮点值.我希望能够在执行转换之前检测IEEE 754数据类型是否包含该值. 一个强力解决方案是将一个try-catch包装在一个强制转换器周围,以便查找OverflowException.阅读CLR documentation中的某些内容意

python – 添加到numpy.nextafter()float会返回意外的结果

根据Wolfram Alpha的说法,这对于x> 1来说是正确的. 2. 6.0/(x+16) > 2.0/(x+4) 为了获得尽可能小的x,我正在使用numpy.nextafter(). >>> from numpy import nextafter >>> x = nextafter(2,2+1) >>> x 2.0000000000000004 然而. >>> 6.0/(x+16) > 2.0/(x+

c# – System.Decimal是否一致?

使用浮点或双精度的浮点计算在硬件上执行,这可能在不同的体系结构或优化设置上给出不同的结果,如here所述. 在该线程中简要提及但未完全回答的一件事是System.Decimal的情况.有人提到System.Decimal可能会被用作一致的浮点类型,它会非常慢,并且.NET(System.Math)提供的数学函数没有

如何确定Javascript Number是否在单精度范围内?

根据ECMAScript specification,Javascript编号值对应于双精度64位二进制格式IEEE 754值. 对于我目前正在研究的WebIDL验证器,我需要能够确定给定的数值是否可以转换为WebIDL float类型,即它是否可以表示为有限单精度32位IEEE 754值. 我目前已经确定了以下方法: validate: function(

c# – 如何从二进制数据中读取64位IEEE标准754双精度数字?

我有一个由64位IEEE标准754浮点数组成的数据流.在使用C#时,我如何阅读这些双打?有没有办法将long / ulong转换为double?解决方法:BitConverter.Int64BitsToDouble method是专门为此而设计的.或者,您可以在流的顶部使用BinaryReader,并使用其ReadDouble方法直接获取double值. double

C#相当于IEEE 754余数()?

在C#中,是否与C99 / IEEE 754的remainder()功能完全等效? 运算符%(double x,double y)的C# language specification says“类似于用于整数操作数的运算符,但与IEEE 754定义不同(其中n是最接近x / y的整数)”. 举一个不同的例子,这个C#程序输出两个1: using System; public class Tes