floating-accuracy

Я борюсь с арифметикой с плавающей запятой, потому что я действительно хочу понять эту тему! Я знаю, что числа могут быть представлены в научной нотации. Таким образом, для обоих чисел экспонента должна выглядеть следующим образом: Денормализованное Число: 11....11 Итак (1+1/2 + 1/2^2 + ... + 1/2^52)*2^1...

Когда это вычисление с плавающей запятой выполняется в boost::thread, оно дает другой результат, чем при выполнении в std::thread или в основном потоке. void print_number() { double a = 5.66; double b = 0.0000001; double c = 500.4444; double d = 0.13423; double v = std::sin(d) * std::exp(...

В Visual C++ я написал следующий пример в программе C++: float f1 = 42.48f; double d1 = 42.48; double d2 = f1; Я скомпилировал программу с помощью Visual Studio 2005. В отладчике я вижу следующие значения: f1 42.480000 float d1 42.479999999999997 double d2 42.479999542236328 double D1, насколь...

Я узнал о проблемах точности , когда выполнил следующую программу: public static void main(String args[]) { double table[][] = new double[5][4]; int i, j; for(i = 0, j = 0; i <= 90; i+= 15) { if(i == 15 || i == 75) continue; table[j][0] = i; double the...

Я параноик, что одна из этих функций может дать неправильный результат, как это: std::floor(2000.0 / 1000.0) --> std::floor(1.999999999999) --> 1 or std::ceil(18 / 3) --> std::ceil(6.000000000001) --> 7 Может ли произойти нечто подобное? Если действительно существует такой риск, я планирую исп...

У меня есть массив numpy arr. Это numpy.ndarray, размер такой (5553110,), dtype=float32. Когда я это делаю: (arr > np.pi )[3154950] False (arr[3154950] > np.pi ) True Почему первое сравнение неверно? И как я могу это исправить? Значения: arr[3154950]= 3.1415927 np.pi= 3.141592653589793 Есть л...

Я знаю, что большинство десятичных знаков не имеют точного представления с плавающей запятой (математика с плавающей запятой сломана?). но я не понимаю, почему 4*0.1 печатается красиво, как 0.4, а 3*0.1 нет, когда оба значения на самом деле имеют уродливые десятичные представления: >>> 3*0.1 0.3000...

можно ли получить деление на 0 (или бесконечности) в следующем примере? public double calculation(double a, double b) { if (a == b) { return 0; } else { return 2 / (a - b); } } в обычных случаях это не будет, конечно. Но что, если a и b очень близко, может (...

у меня вопрос не о плавающей точностью. Речь идет о том, почему Equals() отличается от ==. Я понимаю, почему .1f + .2f == .3f - это false (а .1m + .2m == .3m и true). Я понимаю, что == ссылка и .Equals() сравнение стоимости. (Edit...

Я пытаюсь усечь десятичные числа до десятичных знаков. Что-то вроде этого: 5.467 -> 5.46 985.943 -> 985.94 toFixed(2) делает только о правильной вещи, но это округляет значение. Мне не нужно округлять значение. Надеюсь, что это возможно в JavaScript....