首页 > TAG信息列表 > floating-accuracy

Fortran和Python中的准确性和多项式求值

我将在此处和下面的上下文中进行快速描述.我正在Python和Fortran中评估双变量多项式(2个变量的多项式),并得到不同的结果.我的测试用例的相对误差-4.23e-3-足够大,不会由于精度差异而明显.以下代码片段使用相当原始的类型和相同的算法来尝试使事物尽可能具有可比性.关于差异有什么

python-取消numpy数组操作(包括标量)

我正在使用NumPy 1.7.1版. 现在我遇到了一个我不明白的奇怪取消: >>> import numpy as np >>> a = np.array([ 883, 931, 874], dtype=np.float32) 数学上0.1-a应该是0.1.现在让我们计算一下这个表达式以及绝对和相对误差: >>> a+0.1-a array([ 0.09997559, 0.09997559, 0.099

python-Numpy-两个浮点数与浮点类型的精度之间的差异

我正在查看numpy.finfo并执行以下操作: In [14]: np.finfo(np.float16).resolution Out[14]: 0.0010004 In [16]: np.array([0., 0.0001], dtype=np.float16) Out[16]: array([ 0. , 0.00010002], dtype=float16) 看来向量可以存储两个数字,使得它们的差比类型的分辨率小1

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 但是,如果矩

c fmod为fmod(0.6,0.2)返回0.2

当我在c中使用fmod(0.6,0.2)时返回0.2 我知道这是由浮点精度引起的,但此刻看来我得剩下两倍的余数 非常感谢您为此类问题提供的任何解决方案解决方法:数学值0.6和0.2不能精确地用二进制浮点表示. 该演示程序将向您显示发生了什么: #include <iostream> #include <iomanip> #include

大量错误地在JavaScript中舍入

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

找到最接近的浮点值小于C中的特定整数值?

我的输入浮点值为0.0f< = value< 1.0f(注意少于一个). 当将该值乘以更大的范围时,浮点精度自然会降低,这意味着该值可能会超出等效范围. 例如,如果我开始使用如下值: 0.99999983534521f 然后将它乘以100,我得到: 100.000000000000f 哪个没问题,但是如何将浮点表示减少到最接近

python – 来自熊猫和numpy的意思不同

我有一个MEMS IMU,我一直在收集数据,我正在使用pandas从中获取一些统计数据.每个循环收集6个32位浮点数.对于给定的集合运行,数据速率是固定的.数据速率在100Hz和1000Hz之间变化,收集时间长达72小时.数据保存在平面二进制文件中.我这样读了数据: import numpy as np import pandas

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

python – 在pandas中使用read_csv时精度丢失

我在文本文件中有以下格式的文件,我试图读入一个pandas数据帧. 895|2015-4-23|19|10000|LA|0.4677978806|0.4773469340|0.4089938425|0.8224291972|0.8652525793|0.6829942860|0.5139162227| 如您所见,输入文件中的浮点后有10个整数. df = pd.read_csv('mockup.txt',header=None

python – 浮点数和decimal.Decimal的小数位问题

我似乎在漂浮物上失去了很多精确度. 例如,我需要解决一个矩阵: 4.0x -2.0y 1.0z =11.0 1.0x +5.0y -3.0z =-6.0 2.0x +2.0y +5.0z =7.0 这是我用来从文本文件导入矩阵的代码: f = open('gauss.dat') lines = f.readlines() f.close() j=0 for line in lines: bits = string.

python浮点数

参见英文答案 > Is floating point math broken?                                    31个我有点困惑为什么python在这种情况下添加一些额外的十进制数,请帮忙解释一下 >>> mylist = ["list item 1", 2, 3.14] >>> print mylist ['list item

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

JavaScript处理大数字(BigNum)的标准解决方案是什么?

是否有一个用于JavaScript或内置的bignum库,我可以包括 <script type="text/javascript" src="the_bignum_library.js"></script> ? 我认为我的用户更愿意在网页中输入数字并等待7秒才能获得结果,而不是下载可执行文件并点击一堆“此可执行文件可能会损害您的计算机”警告屏幕进行

PHP – 浮点数精度

参见英文答案 > Is floating point math broken?                                    31个 $a = '35'; $b = '-34.99'; echo ($a + $b); 结果在0.009999999999998 怎么了?我想知道为什么我的程序不断报告奇怪的结果. 为什么PHP没有返回预期的

c – C中的浮点运算出错

请让我知道以下C函数之间的区别. static int mandel(float c_re, float c_im, int count) { float z_re = c_re, z_im = c_im; int i; for (i = 0; i < count; ++i) { if (z_re * z_re + z_im * z_im > 4.f) break; float new_re = z_re

如何阻止mysql舍入浮点值?

我将货币值存储在mysql表中作为浮点数. 问题是,mysql正在向上或向下舍入数字. 恩. 12345.68四舍五入为12345.7 我怎么能阻止这个或者我应该使用更好的数据类型? 我想保留2位小数的原始值.解决方法:将适用列的定义从其当前设置更改为: FLOAT(9,2) 上一个片段中的2指示MySQL保持最多2

c – sprintf(buf,“%.20g”,x)//应该有多大?

我正在将double值转换为字符串,如下所示: std::string conv(double x) { char buf[30]; sprintf(buf, "%.20g", x); return buf; } 我已经将缓冲区大小硬编码为30,但我不确定它是否足够大以适应所有情况. >如何找到我需要的最大缓冲区大小? >从32位切换到64时,精度是否

python为什么以及如何截断数值数据?

我在这里处理两个变量,但是因为当我想将它们作为URL参数发送时它们的值似乎正在改变(它们是松散的精度)而感到困惑. 看看这个场景,我在这里从python解释器重现它: >>> lat = 0.33245794180134 >>> long = 32.57355093956 >>> lat 0.33245794180133997 >>> long 32.57355093956 >>>

c浮点减法误差和绝对值

我理解它的方式是:当在c中用双精度减去两个双数时,它们首先被转换为有效数,并以指数幂的2倍开始.如果减去的数字在有效数字中具有相同的指数和许多相同的数字,则会出现错误,从而导致精度损失.为了测试我的代码,我编写了以下安全添加功能: double Sadd(double d1, double d2, int& re

python – 为什么舍入0.5(十进制)不精确?

参见英文答案 > Python 3.x rounding behavior                                    9个 一半,即十进制的0.5,具有精确的二进制表示:0.1 然而,如果我将它四舍五入为整数,我得到0而不是1.我尝试使用Python和C,它们的行为相同.例如. python代码:

Python 2.6与2.7中的浮点行为

所以我打破了Python 2.6解释器,我得到了这个: Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 2.1

python – 为什么(0.0006 * 100000)?是10

当我做的时候(0.0006 * 100000)?和(0.0003 * 100000)?在python中它分别返回9.999999999999993,但实际上它必须为0. 同样在c fmod(0.0003 * 100000,10)中给出的值为10.有人可以帮我解决我出错的地方.解决方法:最接近的IEEE 754 64位二进制数为0.0003是0.00029999999999999997371893933

python – 在算法和公平之后拆分账单,之后:)

我正试图解决你可能遇到的以下现实问题: 你和一些朋友共进晚餐,你们都同意平均分摊账单.除了账单终于到来之外,你发现不是每个人都有足够的现金(如果有的话,便宜的混蛋). 所以,你们中的一些人比其他人付出更多…之后你们回家并试着决定“谁欠谁的金额?”. 这个,我正在努力解决算法问

java – 如何在需要使用float时实际避免浮点错误?

我试图使用一些UI按钮来影响3D模型的转换,以将位置移动0.1或-0.1. 我的模型位置是一个三维浮点数,因此只需将0.1f添加到其中一个值就会导致明显的舍入误差.虽然我可以使用像BigDecimal这样的东西来保持精度,但我仍然必须将它从浮点数转换回到最后的浮点数,它总是会导致愚蠢的数字使