Запитання з тегом «floating-point»

Числа з плаваючою комою - це наближення реальних чисел, які можуть представляти великі діапазони, ніж цілі числа, але використовують той же об'єм пам'яті, ціною меншої точності. Якщо ваше запитання стосується невеликих арифметичних помилок (наприклад, чому 0,2 + 0,1 дорівнює 0,300000001?) Або десяткових помилок перетворення, будь ласка, прочитайте сторінку "інформація", що посилається нижче перед публікацією.



1
Швидкий метод округлення дубля до 32-бітного int пояснив
Читаючи вихідний код Lua , я помітив, що Lua використовує a macroдля округлення a 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];} Тут …

11
Яка різниця між операцією з плаваючою точкою з однією точністю і подвійною точністю?
Яка різниця між операцією з плаваючою точкою з однією точністю і плаваючою операцією подвійної точності? Мене особливо цікавлять практичні терміни стосовно консолей відеоігор. Наприклад, чи має Nintendo 64 64-бітний процесор, і якщо це все-таки буде, це означає, що він був здатний до подвійної точності операцій з плаваючою точкою? Чи можуть …

6
Якщо я скопіюю поплавок на іншу змінну, вони будуть рівними?
Я знаю, що використовувати ==для перевірки рівності змінних з плаваючою комою - це не дуже вдалий спосіб. Але я просто хочу це знати з такими твердженнями: 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
Чому в Python 3 добре виглядає значення з плаваючою комою 4 * 0,1, але 3 * 0,1 не відповідає?
Я знаю, що більшість десяткових знаків не мають точного подання з плаваючою комою ( Чи порушена математика з плаваючою комою? ). Але я не бачу, чому так 4*0.1добре друкується 0.4, але 3*0.1ні, коли обидва значення насправді мають некрасиві десяткові зображення: >>> 3*0.1 0.30000000000000004 >>> 4*0.1 0.4 >>> from decimal import …

6
Чому Double.MIN_VALUE не відмітний
Чи може хтось пролити трохи світла на те, чому Double.MIN_VALUEнасправді це не мінімальне значення, яке може взяти пар? Це позитивне значення, а подвійний може, звичайно, бути негативним. Я розумію, чому це корисна цифра, але це здається дуже неінтуїтивною назвою, особливо в порівнянні з 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'; } У цьому коді він повертає результат elseстану замість …

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 -e …

9
Чому Double.NaN == Double.NaN повертає помилку?
Я тільки вивчав питання щодо 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 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.