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

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

7
Преобразование в int vs floor
Есть ли разница между ними: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Насколько я понимаю, в обоих случаях результат одинаковый. Есть ли разница в скомпилированном коде?
120 c++  c  floating-point 

5
Необычный быстрый обратный квадратный корень Джона Кармака (Quake III)
У Джона Кармака есть специальная функция в исходном коде Quake III, которая вычисляет обратный квадратный корень из числа с плавающей запятой, в 4 раза быстрее обычного (float)(1.0/sqrt(x)), включая странную 0x5f3759dfконстанту. См. Код ниже. Может ли кто-нибудь объяснить построчно, что именно здесь происходит и почему это работает намного быстрее, чем обычная …

29
Усечение поплавков в Python
Я хочу удалить цифры из числа с плавающей запятой, чтобы иметь фиксированное количество цифр после точки, например: 1.923328437452 -> 1.923 Мне нужно выводить строку в другую функцию, а не печатать. Также я хочу игнорировать потерянные цифры, а не округлять их.

7
Преобразование строки в плавающую в C #
Я конвертирую строку типа «41.00027357629127» и использую; Convert.ToSingle("41.00027357629127"); или float.Parse("41.00027357629127"); Эти методы возвращают 4.10002732E + 15 . Когда я конвертирую в float, я хочу «41.00027357629127». Эта строка должна быть такой же ...

6
Почему SSE скалярный sqrt (x) медленнее, чем rsqrt (x) * x?
Я профилировал некоторые из наших основных математических вычислений на Intel Core Duo, и, глядя на различные подходы к вычислению квадратного корня, я заметил кое-что странное: используя скалярные операции SSE, быстрее получить обратный квадратный корень и умножить его. чтобы получить sqrt, чем использовать собственный код операции sqrt! Я тестирую это с …

2
В чем разница между тихим NaN и сигнальным NaN?
Я читал о числах с плавающей запятой и понимаю, что NaN может быть результатом операций. Но я не могу понять, что именно это за концепции. В чем разница между ними? Какой из них можно создать при программировании на C ++? Могу ли я как программист написать программу, вызывающую сигнал SNAN?

11
В каком порядке следует добавлять числа с плавающей запятой, чтобы получить наиболее точный результат?
Это был вопрос, который мне задали во время моего недавнего интервью, и я хочу знать (на самом деле я не помню теорию численного анализа, поэтому, пожалуйста, помогите мне :) Если у нас есть какая-то функция, которая накапливает числа с плавающей запятой: std::accumulate(v.begin(), v.end(), 0.0); vэто std::vector<float>, например. Не лучше ли …

8
Спецификатор ширины Printf для поддержания точности значения с плавающей запятой
Есть ли printfспецификатор ширины, который можно применить к спецификатору с плавающей запятой, который автоматически форматировал бы вывод до необходимого количества значащих цифр , чтобы при сканировании строки обратно было получено исходное значение с плавающей запятой? Например, предположим, что я печатаю floatс точностью до 2десятичных знаков: float foobar = 0.9375; printf("%.2f", …

4
Что такое float в Java?
Я написал такой код: float b = 3.6; и я получаю это: Ошибка: нерешенная проблема компиляции: Несоответствие типов: невозможно преобразовать из double в float Зачем? Что такое определение float?

10
«F» после числа
Что означает fпосле цифр? Это от C или Objective-C? Есть ли разница в том, чтобы не добавлять это к постоянному числу? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Вы можете объяснить, почему я просто не написал: CGRect frame = CGRectMake(0, 0, 320, 50);

3
Можно ли написать быструю функцию InvSqrt () Quake в Rust?
Это просто для удовлетворения моего собственного любопытства. Есть ли реализация этого: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } в ржавчине? Если он существует, отправьте код. Я попробовал это …

19
Преобразование строки в плавающую в Swift
Я пытаюсь преобразовать числа, взятые из UITextField, которые, как я полагаю, на самом деле являются строками, и преобразовать их в Float, чтобы я мог их умножать. У меня есть два UITextfields, которые объявлены следующим образом: @IBOutlet var wage: UITextField @IBOutlet var hour: UITextField Когда пользователь нажимает кнопку UIButton, я хочу …

11
Вычисления с плавающей запятой и целочисленные на современном оборудовании
Я выполняю некоторую критическую для производительности работу на C ++, и в настоящее время мы используем целочисленные вычисления для задач, которые по своей сути являются плавающими, потому что «они быстрее». Это вызывает множество неприятных проблем и добавляет много надоедливого кода. Теперь я помню, как читал о том, как вычисления с …

9
Безопасно ли проверять значения с плавающей запятой на равенство 0?
Я знаю, что обычно нельзя полагаться на равенство между значениями типа double или decimal, но мне интересно, является ли 0 особым случаем. Хотя я могу понять неточности между 0,00000000000001 и 0,00000000000002, само значение 0 кажется довольно сложным, поскольку это просто ничего. Если вы неточны ни в чем, это уже не …

14
Форматирование плавающих объектов с помощью стандартного модуля json
Я использую стандартный модуль json в python 2.6 для сериализации списка чисел с плавающей запятой. Однако я получаю такие результаты: >>> import json >>> json.dumps([23.67, 23.97, 23.87]) '[23.670000000000002, 23.969999999999999, 23.870000000000001]' Я хочу, чтобы числа с плавающей запятой состояли только из двух десятичных цифр. Результат должен выглядеть так: >>> json.dumps([23.67, 23.97, …

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