floating-point- все статьи тега ➜ страница 2


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

для ясности, если я использую язык, который реализует iee 754 плавает, и я объявляю: float f0 = 0.f; float f1 = 1.f; ...а потом распечатайте их обратно, я получу 0.0000 и 1.0000 - точно. но IEEE 754 не способен представлять все числа вдоль реальной линии. Близко к нулю, "промежутки" малы; по мере удаления, промежутки становятся больше. Итак, мой вопрос: для IEEE 754 float, который является первым (ближайшим к нулю) целым числом, которое не может быть точно представлены? меня сейчас волнуют ...

Сохранить точность с двойным в 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 Как бы я получил это, чтобы просто распечатать (или быть в состоянии использовать его как) 11.4? ...

Что на самом деле делает ffast-math gcc?

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

Сравнивайте поплавки в 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 такие же. Есть ли какой-либо специальный способ обработки/сравнения поплавков в PHP? если да, то пожалуйста, помогите мне решить эту проблему. или есть проблема с моей конфигурацией сервера? ...

round() в Python, похоже, не округляется должным образом

документация круглое() функция утверждает, что вы передаете ей число, а позиции после десятичного числа округляются. Таким образом это должны этого: n = 5.59 round(n, 1) # 5.6 но, на самом деле, старая добрая странность с плавающей точкой вползает, и вы получаете: 5.5999999999999996 для целей пользовательского интерфейса, мне нужно, чтобы отобразить 5.6. Я покопался в интернете и нашел некоторые документация что это зависит от моей реализации Питон. К сожалению, это происходит как на моей ...

Почему я не могу использовать значение типа float в качестве параметра шаблона?

когда я пытаюсь использовать float в качестве параметра шаблона компилятор запрашивает этот код, в то время как int работает нормально. это потому, что я не могу использовать float как параметр шаблона? #include<iostream> using namespace std; template <class T, T defaultValue> class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() { return value; } }; int main() { GenericClass <in ...

Как подавить научную нотацию в Python?

вот мой код: x = 1.0 y = 100000.0 print x/y мой фактор отображается как 1.00000e-05 есть ли способ подавить научную нотацию и заставить ее отображаться как 0.00001? Как преобразовать научную нотацию в float. спасибо заранее. Это кажется несколько нелепым, чтобы спросить, но я не понял а способа сделать это пока нет. Я собираюсь использовать результат в виде строки. ...

Сколько двузначных чисел между 0.0 и 1.0?

Это то, что было у меня на уме в течение многих лет, но я никогда не взял время, чтобы спросить, прежде чем. много (псевдо) генераторы случайных чисел, генерируют случайное число между 0.0 и 1.0. Математически есть бесконечные числа в этом диапазоне, но double является числом с плавающей запятой, и поэтому имеет конечную точность. поэтому вопросы: сколько double число между 0.0 и 1.0? там так же много чисел между 1 и 2? Между 100 и 101? Между 10^100 и 10^100+1? Примечание: если это имеет зн ...

Преобразование float в Double без потери точности

у меня есть примитивный поплавок, и мне нужен как примитивный двойник. Просто бросая поплавок в два раза дает мне странную дополнительную точность. Например: float temp = 14009.35F; System.out.println(Float.toString(temp)); // Prints 14009.35 System.out.println(Double.toString((double)temp)); // Prints 14009.349609375 однако, если вместо приведения я вывожу float как строку и разбираю строку как двойник, я получаю то, что хочу: System.out.println(Double.toString(Double.parseDouble(Float.toSt ...

Что такое float в Java?

Я написал этот код: float b = 3.6; и я получаю это: Error:Unresolved compilation problem: Type mismatch: cannot convert from double to float почему? Что такое определение float? ...

Как я могу преобразовать строку в число в Perl?

Как бы я преобразовал строку, содержащую число, в ее числовое значение в Perl? ...

Деление целых чисел в Java [дубликат]

этот вопрос уже есть ответ здесь: почему результат 1/3 == 0? 13 ответов Это базовый вопрос, но я не могу найти ответ. Я изучил арифметику с плавающей запятой и несколько других тем, но ничего, казалось, не касалось этого. Я уверен, что просто ошибаюсь терминология. В принципе, я хочу взять две величины - завершенные и полные - и разделить их, чтобы придумать процент (от того, сколько было завершено). ...

Почему 0.1 + 0.2 == 0.3 в D?

assert(0.1 + 0.2 != 0.3); // shall be true это моя любимая проверка, что язык использует собственную арифметику с плавающей запятой. C++ #include <cstdio> int main() { printf("%dn", (0.1 + 0.2 != 0.3)); return 0; } выход: 1 http://ideone.com/ErBMd Python print(0.1 + 0.2 != 0.3) выход: True http://ideone.com/TuKsd другие примеры Java:http://ideone.com/EPO6X C#: http://ideone.com/s14tV почему это не верно для D? Как понять D использует собственные числа с плаваю ...

Формат плавает со стандартным модулем 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, 23.87]) '[23.67, 23.97, 23.87]' Я попытался определить свой собственный класс кодировщика JS ...

PHP-точность плавающего числа [дубликат]

этот вопрос уже есть ответ здесь: математика с плавающей запятой нарушена? 27 ответов $a = '35'; $b = '-34.99'; echo ($a + $b); результаты в 0.009999999999998 что это такое? Я удивлялся, почему моя программа продолжала сообщать странные результаты. почему PHP не возвращает ожидаемый 0.01? ...

Должен ли я использовать double или float?

каковы преимущества и недостатки использования одного вместо другого в C++? ...

Работа с точностью float в Javascript [дубликат]

этот вопрос уже есть ответ здесь: как справиться с точностью чисел с плавающей запятой в JavaScript? 33 ответы у меня есть большое количество числовых значений y в javascript. Я хочу сгруппировать их, округляя их до ближайшего кратного x и преобразовать результат в строку. как мне обойти раздражающую точность с плавающей точкой? например: 0.2 + 0.4 = 0.6000000000000001 две вещи, которые я пробов ...

Преобразование float в строку без округления

Я делаю программу, которая по причинам, не требующим объяснения, требует, чтобы float был преобразован в строку для подсчета с помощью len(). Однако str (float (x)) приводит к округлению x при преобразовании в строку, что отбрасывает все это. Кто-нибудь знает, как это исправить? Вот код, который используется, если вы хотите знать: len(str(float(x)/3)) ...

Преобразование строки в целое число / Float в Haskell?

data GroceryItem = CartItem ItemName Price Quantity | StockItem ItemName Price Quantity makeGroceryItem :: String -> Float -> Int -> GroceryItem makeGroceryItem name price quantity = CartItem name price quantity I want to create a `GroceryItem` when using a `String` or `[String]` createGroceryItem :: [String] -> GroceryItem createGroceryItem (a:b:c) = makeGroceryItem a b c вход будет в формате ["Apple","15.00","5"] который я разбил с помощью Haskell's . Я получаю следующую ошиб ...

Как ввести литерал бесконечности с плавающей точкой в python

Как ввести литерал бесконечности с плавающей точкой в python? Я слышал inf = float('inf') не портативный. Таким образом, мне было рекомендовано следующее: inf = 1e400 является ли один из них стандартным или портативным? Что такое лучшая практика? ...