Вопросы с тегом «floating-point»

169
Быстрый метод округления двойного к 32-битному int объяснил

Читая исходный код Lua , я заметил, что Lua использует macroокругление doubleдо 32-разрядного числа int. Я извлек macro, и это выглядит так: union i_cast {double d; int i[2]}; #define double2int(i, d, t) \ {volatile union i_cast u; u.d = (d) + 6755399441055744.0; \ (i) = (t)u.i[ENDIANLOC];} Здесь...

169
В чем разница между операциями с плавающей запятой одинарной и двойной точности?

В чем разница между операцией с плавающей запятой одинарной точности и операцией с плавающей запятой двойной точности? Меня особенно интересуют практические термины в отношении игровых приставок. Например, есть ли в Nintendo 64 64-битный процессор и означает ли это, что он способен выполнять...

167
Если я скопирую float в другую переменную, будут ли они равны?

Я знаю что используя == для проверки равенства переменных с плавающей точкой не очень хороший способ. Но я просто хочу знать это со следующими утверждениями: float x = ... float y = x; assert(y == x) Так как yэто скопировано x, будет ли утверждение...

164
Какое первое целое число, которое IEEE 754 не может точно представить?

Для ясности, если я использую язык, который реализует плавающие объекты IEE 754, и я объявляю: float f0 = 0.f; float f1 = 1.f; ... а затем распечатать их обратно, я получу 0,0000 и 1,0000 - точно. Но IEEE 754 не способен представлять все числа вдоль реальной линии. Близко к нулю, «пробелы» малы; по...

162
Формат / Подавить научную запись из результатов агрегации Python Pandas

Как можно изменить формат для вывода из групповой операции в пандах, которая выдает научную запись для очень больших чисел? Я знаю, как выполнять форматирование строк в Python, но я не могу понять, как применить его здесь. df1.groupby('dept')['data1'].sum() dept value1 1.192433e+08 value2...

158
Почему значение с плавающей точкой 4 * 0.1 выглядит хорошо в Python 3, а 3 * 0.1 - нет?

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

157
Почему Double.MIN_VALUE не отрицательный

Может ли кто-нибудь пролить свет на то, почему на Double.MIN_VALUEсамом деле это не минимальное значение, которое может принять Doubles? Это положительное значение, и двойной может, конечно, быть отрицательным. Я понимаю, почему это полезное число, но оно кажется не очень понятным, особенно по...

157
Сравните поплавки в php

Я хочу сравнить два числа с плавающей точкой в ​​PHP, как в следующем примере кода: $a = 0.17; $b = 1 - 0.83; //0.17 if($a == $b ){ echo 'a and b are same'; } else { echo 'a and b are not same'; } В этом коде он возвращает результат elseсостояния вместо ifусловия, хотя $aи $bтакой же. Есть ли...

156
Как сравнить два числа с плавающей точкой в ​​Bash?

Я очень стараюсь сравнить два числа с плавающей точкой в ​​скрипте bash. Я должен к переменным, например let num1=3.17648e-22 let num2=1.5 Теперь я просто хочу сделать простое сравнение этих двух чисел: st=`echo "$num1 < $num2" | bc` if [ $st -eq 1]; then echo -e "$num1 < $num2" else echo -e...

155
'float' против 'двойной' точности

Код float x = 3.141592653589793238; double z = 3.141592653589793238; printf("x=%f\n", x); printf("z=%f\n", z); printf("x=%20.18f\n", x); printf("z=%20.18f\n", z); даст вам выход x=3.141593 z=3.141593 x=3.141592741012573242 z=3.141592653589793116 где на третьей строке выводится 741012573242мусор, а...

155
Почему Double.NaN == Double.NaN возвращает false?

Я только изучал вопросы OCPJP и нашел этот странный код: public static void main(String a[]) { System.out.println(Double.NaN==Double.NaN); System.out.println(Double.NaN!=Double.NaN); } Когда я запустил код, я получил: false true Как получается, falseкогда мы сравниваем две вещи, которые выглядят...

155
Согласна ли математика с плавающей точкой в ​​C #? Может ли это быть?

Нет, это не другой вопрос «Почему (1 / 3.0) * 3! = 1» . В последнее время я много читаю о числах с плавающей запятой; в частности, как один и тот же расчет может дать разные результаты для разных архитектур или настроек оптимизации. Это проблема для видеоигр, в которых хранятся повторы или они...

152
Почему добавление 0,1 несколько раз остается без потерь?

Я знаю, что 0.1десятичное число не может быть представлено точно конечным двоичным числом ( объяснение ), поэтому double n = 0.1потеряет некоторую точность и не будет точно 0.1. С другой стороны, 0.5можно представить именно так, как оно есть 0.5 = 1/2 = 0.1b. Сказав, что понятно, что добавление 0.1...

149
Сохраняйте точность с двойным в Java

public class doublePrecision { public static void main(String[] args) { double total = 0; total += 5.6; total += 5.8; System.out.println(total); } } Приведенный выше код печатает: 11.399999999999 Как мне заставить это просто напечатать (или быть в состоянии использовать это как)...

147
Преобразуйте число с плавающей запятой до определенной точности, а затем скопируйте в строку

Скажем, у меня есть число с плавающей запятой 135.12345678910. Я хочу объединить это значение в строку, но только хочу 135.123456789. С помощью print я могу легко сделать это, сделав что-то вроде: print "%.9f" % numvar с numvarмоим исходным номером. Есть простой способ сделать это?...

144
Что на самом деле делает математика gcc?

Я понимаю, что --ffast-mathфлаг gcc может значительно увеличить скорость операций с плавающей запятой и выходит за рамки стандартов IEEE, но я не могу найти информацию о том, что на самом деле происходит, когда он включен. Может ли кто-нибудь объяснить некоторые детали и, возможно, дать четкий...

136
Отображение числа с плавающей запятой с двумя десятичными знаками в Python

У меня есть функция, принимающая аргументы с плавающей запятой (обычно целые или десятичные числа с одной значащей цифрой), и мне нужно вывести значения в строке с двумя десятичными знаками (5 -> 5.00, 5.5 -> 5.50 и т. Д.). Как я могу это сделать в...

131
Почему в C нет беззнаковых чисел с плавающей запятой?

Я знаю, вопрос кажется странным. Программисты иногда слишком много думают. Пожалуйста, прочтите ... В CI много использую signedи unsignedцелые числа. Мне нравится, что компилятор предупреждает меня, если я делаю такие вещи, как присвоение целого числа со знаком беззнаковой переменной. Я получаю...