precision相关内容

四舍五入问题.Net Core 3.1与.Net Core 2.0/.Net Framework

我在 .NET Core 3.0 和 .NET Framework/.NET Core 2.x 之间遇到一些舍入问题. 我已经在网上搜索了一段时间,但找不到合适的搜索词,所以我将其发布在这里. 我编写了以下示例控制台应用程序来说明我的问题: class程序{静态void Main(string [] args){const double x = 123.4567890/3.1415 ..

打印整数或带有n个小数的浮点数

在Python中,当后一种情况要求我将打印输出限制为一定数量的数字时,如何打印可能是整数或实数的数字? 长话短说,假设我们有以下示例: print("{0:.3f}".format(num))#我无法执行print("{}".format(num))#因为我不想要所有的小数 是否有"Pythy"方法来确保例如如果 num == 1 我打印的是 1 而不是 1.000 (我的意思是除了 ..
发布时间:2021-05-08 19:53:39 Python

在C ++中将0添加到浮点/双精度类型

我听说由于内部使用二进制浮点,所以像0.1 + 0.2这样的浮点运算可能会产生像0.30000000000000004这样的舍入误差. 但是,如果我在C ++中的任何浮点数上添加0,是否可以保证产生相同的值而不会出现舍入错误?我不知道浮点算术如何工作以及何时出现舍入错误. 解决方案 如果 C ++实现支持IEEE754数学,则可以保证.IEEE754标准具有精确的数学运算定义,因此C ..
发布时间:2021-05-08 19:52:23 其他开发

如何保持浮点/双精度算术确定性?

如果我们使用具有双精度和浮点运算的算法,我们如何保证在Python和C,x86和x64 Linux和Windows计算机以及ARM微控制器上运行时,结果是相同的? 我们正在使用一种算法,该算法使用: double + double 双精度+浮动 double exp(double) float * float 在同一台计算机上,针对x86和x64 MinGW进行编译会产生不 ..
发布时间:2021-05-08 19:51:59 Python

C ++将1加到非常小的数字?

我只是想在C ++中计算一个好的Sigmoid函数(高效).所以我必须做类似的事情: 1/(1 + exp(-x)) 问题是,当 X 变大(甚至变小)时, 1 + e 的结果变为0或1 例如, 1 + exp(-30)= 1 但这是不正确的... 我们如何轻松高效地添加很小(或很大)的数字? 数据类型,我正在使用:double 这是代码段: 双四元数:: si ..
发布时间:2021-05-02 20:29:55 C/C++开发

如何将double/float舍入为BINARY精度?

我正在编写用于对浮点数进行计算的代码的测试.可以预期,结果很少是准确的,我想在计算结果和预期结果之间设置一个容差.我已经验证过,实际上,以双精度,四舍五入后两个有效小数点后的结果始终是正确的,但通常通常在四舍五入后的小数点后仍然正确.我知道 double 和 float 的存储格式,以及两种主要的舍入方法(通过 BigDecimal 精确进行)并通过乘法, math.round 和除法来更快).但 ..
发布时间:2021-05-02 20:28:38 Java开发

机器Epsilon精度差异

作为学校作业的一部分,我试图计算C ++中的double和float的机器epsilon值.我在Windows 7(64位)中使用Cygwin,这是代码: #includeint main(){双ε= 1;而(1 + epsilon> 1)epsilon = epsilon/2;epsilon = 2 *ε;std :: cout ..
发布时间:2021-05-02 20:28:35 C/C++开发

C ++长双精度打印所有数字

关于我的问题,我在这里看到过一篇文章,但由于我不熟悉C ++而无法理解.我写了一个小脚本,该脚本从用户那里获取一个数字,然后该脚本打印出所输入数字的阶乘.一旦输入了较大的数字(例如30),脚本不会输出所有数字.输出类似于2.652528598 E + 32,但是我想要的是确切的数字265252859812191058636308480000000.> 解决方案 您可以将输出流的精度设置为所需的 ..
发布时间:2021-05-02 20:28:32 C/C++开发

Python“十进制"程序包给出错误结果

我尝试通过设置 getcontext().prec = 800 来计算以下内容. >>>从十进制导入*>>>getcontext().prec = 800>>>十进制(22.0)/十进制(10.0)-十进制(0.2)十进制('1.999999999999999988897769753748434595763683319091796875')>>> 但是预期结果是 2 .我在哪里做错了? ..
发布时间:2021-04-29 20:37:10 Python

PHP中的MySQL DECIMAL处理

如通常讨论的那样(例如,在在MySQL中存储0.00001 ),DECIMAL数据类型应用于需要准确性/正确性的字段,例如帐户余额. 但是,我想知道PHP如何处理这些值,如果它们在内部以浮点数进行处理,那么从数据库读取这些值,进行一些计算并再次写回它们时是否仍然存在问题.如果是这样,我们如何强制PHP保持精确度? 解决方案 该变量最初可能是PHP中的字符串(从MySQL结果对象读取时 ..
发布时间:2021-04-29 20:35:49 PHP

Python十进制.十进制-getcontext().prec设置和输出中的小数位数

我想对使用十进制.十进制转换的数字字符串进行算术运算.我希望返回的结果有两个小数,而不考虑转换后的数字字符串有多少个小数. 在这种特殊情况下,为什么两位十进制精度给我一个十进制收益,为什么三位数精度给我我想要的收益(2个十进制-> 2.15) 从小数导入的 *getcontext().prec = 2a =小数(x.replace(',','.'))b =小数(y.replace(', ..
发布时间:2021-04-29 20:35:46 Python

计算器如何精确地工作?

我想知道计算器如何精确地工作.例如,当以 double 精度计算时, sin(M_PI)的值不完全为零: #include#includeint main(){双x = sin(M_PI);printf(“%.20f \ n",x);//0.00000000000000012246返回0;} 现在,当用户输入sin(π)时,我当然想打印零.我可以轻松地 ..
发布时间:2021-04-21 18:56:28 其他开发

如何用正确的有效十进制数字打印C ++ double?

在Java中处理浮点值时,调用 toString()方法将给出一个打印值,该值具有正确数量的浮点有效数字.但是,在C ++中,通过 stringstream 打印浮点数会将值四舍五入到5个或更少的数字.有没有办法“漂亮地打印"?C ++中的浮点数到(假定的)正确位数的有效数字? 编辑:我想我被误解了.我希望输出具有动态长度,而不是固定的精度.我熟悉setprecision.如果您查看Doub ..
发布时间:2021-04-19 19:21:28 C/C++开发

.NET 4.5.2中对Math.Exp的更改或双重实现

如果我运行语句 Math.Exp(113.62826122038274).ToString("R") 在安装了.net 4.5.1的计算机上,然后我得到了答案 2.2290860617259248E + 49 但是,如果我在安装了.net Framework 4.5.2的计算机上运行相同的命令,那么我会得到答案 2.2290860617259246E + 49 (即最后一位 ..
发布时间:2021-04-18 20:02:05 C#/.NET