Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Floating point 如何在浮点运算中确定最接近给定数字的数字_Floating Point - Fatal编程技术网

Floating point 如何在浮点运算中确定最接近给定数字的数字

Floating point 如何在浮点运算中确定最接近给定数字的数字,floating-point,Floating Point,(我在math.se上问这个问题,但有人建议我过来……对我放松点,我不是CS人。) 我正在学习编程,偶然发现了计算机数字表示的有趣副产品 0.1+0.2=0.300000000000000004 在试图理解为什么会发生这种情况时,必须理解0.1是如何存储在计算机上的。我算出来了 0.1(10)=0.000110011…(2) 然后读取最接近0.1的浮点数为 0.099999999999167332731531132594682276248931884765625 及 0.100000000000

(我在math.se上问这个问题,但有人建议我过来……对我放松点,我不是CS人。)

我正在学习编程,偶然发现了计算机数字表示的有趣副产品

0.1+0.2=0.300000000000000004

在试图理解为什么会发生这种情况时,必须理解0.1是如何存储在计算机上的。我算出来了

0.1(10)=0.000110011…(2)

然后读取最接近0.1的浮点数为

0.099999999999167332731531132594682276248931884765625

0.10000000000000055115123125782702118158340454015625

(来源:)

出于对如何实际确定这些数字的好奇,我试图编写一个python脚本来查找它们,但以惨败告终

然后我转向谷歌,找到了一个类似问题的答案:。在我的例子中,我能够完全遵循解决方案,直到计算数字14411518807585587和14411518807585588的部分。我如何使用这些数字来获得周围的两个数字

作为参考,我的两个整数将由以下公式确定:


2-4=.0625我很难理解你的问题。有两种近似方法:只精确表示有限多个浮点数,而这些浮点数通常不对应于终止十进制表示。算法也是近似的。但是你似乎已经知道了…@Brick:我的问题基本上是:假设x是一个范围为0的终止基数-10有理数,你计算的数字144 115 188 075 855 872是下限尾数的十进制表示。为上限尾数的十进制表示形式添加1。在Math.SE问题中使用术语。可能有一种情况,你只是在改变e的整数之间的一个转折点,但这是一个相对较小的集合,你可能会在你首先计算e的点上发现(?),我很难理解你的问题是什么。有两种近似方法:只精确表示有限多个浮点数,而这些浮点数通常不对应于终止十进制表示。算法也是近似的。但是你似乎已经知道了…@Brick:我的问题基本上是:假设x是一个范围为0的终止基数-10有理数,你计算的数字144 115 188 075 855 872是下限尾数的十进制表示。为上限尾数的十进制表示形式添加1。在Math.SE问题中使用术语。可能有一种情况,你只是在改变e的整数之间的一个转折点,但是这是一个相对较小的集合,你可能会在你首先计算e的地方发现(?)。