Рассмотрим следующий код:
0.1 + 0.2 == 0.3 -> false
0.1 + 0.2 -> 0.30000000000000004
Почему возникают эти неточности?
В Python, как я могу анализировать числовую строку, такую как "545.2222"
в соответствующее значение float, 542.2222
? Или разобрать строку "31"
на целое число, 31
?
Я просто хочу знать, как разобрать поплавок string
на float
и (отдельно) на int
Я хочу, чтобы a
округлялось до 13.95 .
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
Функция round
не работает так, как я ожидал.
Мне всегда говорили, что никогда не пишут , чтобы представлять деньги с double
или float
типами, и на этот раз я задаю вам вопрос: почему?
Я уверен, что есть очень веская причина, я просто не знаю, что это такое.
Есть ли способ перейти между 0 и 1 на 0. 1?
Я думал, что смогу сделать это следующим образом, но это не удалось:
for i in range(0, 1, 0.1):
print i
Вместо этого он говорит, что аргумент шага не может
...Какой самый эффективный способ сравнить два значения double
или два значения float
?
Просто делать это не правильно:
bool CompareDoubles1 (double A, double B)
{
return A == B;
}
Но как то так:
bool CompareDoubles2 (double A, double B)
... У меня есть следующий фиктивный скрипт:
function test(){
var x = 0.1 * 0.2;
document.write(x);
}
test();
Это напечатает результат 0.020000000000000004
, в то время как он должен просто напечатать 0.02
(если вы используете свой калькулятор). Насколько я понял, это
64-битный двойник может представлять целое число +/- 2 53 в точности
Учитывая этот факт, я решил использовать двойной тип в качестве единого типа для всех моих типов, так как мое самое большое целое число - 32-разрядное без знака.
Но теперь
...У меня есть значение 25.00
в float
, но когда я печатаю его на экране, оно равно 25.0000000
.
Как я могу отобразить значение только с двумя десятичными знаками?
Итак, я получил ответ на мой последний вопрос 2954831335 (не знаю, почему я об этом не подумал) Я печатал double
, используя cout
, который округлился, когда я этого не ожидал. Как я могу заставить cout
печатать double
, используя
Я использовал следующую строку для преобразования float в int, но это не так точно, как хотелось бы:
float a=8.61f;
int b;
b=(int)a;
Результат: 8
(должно быть 9
)
Когда a = -7.65f
, результат: -7
(должно быть -8
)
Какой
...На SO было отправлено несколько вопросов о представлении с плавающей точкой. Например, десятичное число 0. 1 не имеет точного двоичного представления, поэтому опасно использовать оператор == для сравнения его с другим числом с плавающей точкой. Я понимаю принципы, лежащие в
...Вот пример с комментариями:
class Program
{
// first version of structure
public struct D1
{
public double d;
public int f;
}
// during some changes in code then we got D2 from D1
// Field f type became
... Я могу назвать три преимущества использования double
(или float
) вместо decimal
:
Но эти преимущества, по-видимому, применимы только к интенсивным
...Я посмотрел, что это делает, но есть ли у кого-нибудь пример, когда вы будете использовать ключевое слово strictfp
в Java? Кто-нибудь на самом деле нашел применение для этого?
Могут ли быть какие-либо побочные эффекты от того, что я просто добавлю
...Как генерировать случайные числа с плавающей точкой в C ++?
Я думал, что могу взять целое число и разделить его на что-нибудь, будет ли этого достаточно?
Мне нужна простая функция округления с плавающей запятой, таким образом:
double round(double);
round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Я могу найти ceil()
и floor()
в математике. ч - но не round()
.
Он присутствует в стандартной библиотеке
...Я пытаюсь проанализировать два значения из сетки данных.
Поля являются числовыми, и когда они имеют запятую (например, 554,20), я не могу получить цифры после запятой.
Я пробовал parseInt
и parseFloat
. Как я могу это сделать?
Например:
9 / 5 #=> 1
но я ожидал 1.8
. Как я могу получить правильный десятичный (нецелый) результат? Почему он вообще возвращает 1
?
Я пытаюсь добавить немного пространства между строками в мои TextViews, используя android:lineSpacingMultiplier
из документации :
Дополнительный интервал между строками текста, в качестве множителя.
Должно быть значением с плавающей запятой, например как "1. 2" .
Поскольку я использую это в нескольких
...