floating-point-precision

    2热度

    1回答

    对于这个代码段 double count = 0.0; while(count != 1.0) {count += 1.0/3;} 我想知道什么部分(IEEE 754)将导致计数3:为1.0,而不是0.9999999999999999。我意识到一般原因会由于二进制数字的数目无限而变为四舍五入,但如果有人可以更详细地解释(IEEE 754)背后的细节,我将不胜感激。

    1热度

    1回答

    我的一个UDF的一部分有一个小节,试图找到浮点数后的小数位数,并返回乘以10的幂乘以整数。使用1.0005作为一个例子,这里的段: DECLARE @num FLOAT = 1.0005 DECLARE @exponent AS INT = 0 WHILE @num - FLOOR(@num) > 0.000001 BEGIN SET @exponent += 1 SET @num *

    0热度

    2回答

    在我的2D物理模拟(Java)中,我计算凸多边形的中心如下,其中参数区域是以前计算的多边形的封闭区域。 private Vector2d calculateCenterOfMass(double area) { Vector2d center = new Vector2d(0, 0); for (int i = 0; i < vertices.length; i++) {

    1热度

    2回答

    当然, System.out.println(0.1); 输出0.1。但是对于任意小数点总是这样吗? (排除的双号本身。如,System.out.println(0.10000000000000000001);输出0.1精度而导致的情况下) 当我打System.out.println(DECIMAL);我认为,DECIMAL被转换成二进制(双)和二进制转换成十进制(以输出小数点作为字符串) 想想下

    17热度

    2回答

    有没有办法获得一个字符串显示确切值double,与所有所需的小数位,以表示其基准10的精确值? 例如(通过Jon Skeet and Tony the Pony),当你键入 double d = 0.3; 的d的实际值是完全 0.299999999999999988897769753748434595763683319091796875 每个二进制浮点值(忽略的东西类似于无穷大和NaN的)

    1热度

    1回答

    我有学习的Common Lisp了2个月,我遇到一个难题,这里是代码: CL-USER> (round 33.6) 34 -0.40000153 谁能解释呢?谢谢

    4热度

    1回答

    假设我有两个变量a和b,既可以是类型为float,也可以是两个类型都是double,它们都包含一些值。以下断言总是成立吗?我的意思是,数值错误的存在是否会改变结论? A> B,如果且仅当一个< = B是假 一个< B是真实的,当且仅当a> = b为假 一个> = b为一定是真真,如果一个== b为真,如果一个== b为真 对于第三和f 一个< = b为一定是真的第四,我的意思是,例如,“a ==

    3热度

    1回答

    我正在阅读一个JSON数据文件,可能会给我一个浮动值,比如1.1。当我制作Decimal这个值时,由于浮点数的二进制表示的不精确性,我得到了一个疯狂的长数。 我明白二进制表示法,我很满意这个想法,即在base-ten浮点数中可写的数字不能总是以base-two表示。 但似乎如果我串 - 如果首先浮动,并使用该字符串作为值的十进制,我得到一个十进制没有微小的二元 - 不精确三角洲。 这里就是我的意思

    1热度

    1回答

    我正在寻找有关Postgres和Excel中小数精度的任何文档。 我有一个通过excel导入的数据库。我发现SUM()导致excel与Postgres中的SUM()方法稍有不同(通常在小数点的第3或第4位,这取决于我在数据中包含或排除的内容)。我很好奇这是否是由于浮动点精度的问题,或者是否有可能从进口导致一些小的差异。

    0热度

    3回答

    给定浮点数7.64,将其转换为字符串而不使用任何内置函数/库。 这个问题在java中很容易。由于+运算符重载的字符串。我们可以做 class Float2String { public static void main(String[] args) { float f=7.64f; String result; result=""+f;