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

Числа с плавающей запятой представляют собой аппроксимацию действительных чисел, которые могут представлять большие диапазоны, чем целые числа, но используют тот же объем памяти за счет меньшей точности. Если ваш вопрос касается небольших арифметических ошибок (например, почему 0,2 + 0,1 равно 0,300000001?) Или десятичных ошибок преобразования, пожалуйста, прочитайте страницу информации, приведенную ниже, перед публикацией.

18
Форматирование поплавков без конечных нулей
Как я могу отформатировать число с плавающей запятой, чтобы оно не содержало конечных нулей? Другими словами, я хочу, чтобы полученная строка была максимально короткой. Например: 3 -> "3" 3. -> "3" 3.0 -> "3" 3.1 -> "3.1" 3.14 -> "3.14" 3.140 -> "3.14"


1
Быстрый метод округления двойного к 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];} Здесь ENDIANLOCопределяется как endianness …

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

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

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

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

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

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

16
Сравните поплавки в 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'; } В этом коде он возвращает …

17
Как сравнить два числа с плавающей точкой в ​​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 …

9
Почему 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когда мы сравниваем две вещи, которые выглядят одинаково друг с другом? Что NaNзначит?
155 java  floating-point  nan  scjp  ocpjp 

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

7
'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мусор, а на четвертой строке 116мусор. У двойников всегда есть 16 значащих цифр, а у чисел с плавающей запятой всегда 7 …
155 c  floating-point 

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.