Почему выдает -0.0 в питоне? У меня 1 число -2.5, другое -2.6 а сумма вычисляется как -2.5*0.01+(-2.6*0.01). Почему это число пишется -0.0?

Ильсур Ш.
  · 403
тыжпрограммист  · tele.click/origin_of_species

Скорее всего вы ошибаетесь в вычислениях.

Достичь указанного вами эффекта можно, если вы форматируете вывод маленьких чисел. Т.е. само число будет иметь ненулевое значение, но при выводе обрежется. Например, вот так:

>>> print "{}".format(-2.5 * 0.001 + (-2.6*0.001))

-0.0051

>>> print "{:.1f}".format(-2.5 * 0.001 + (-2.6*0.001))

-0.0

Комментировать ответ…
Вы знаете ответ на этот вопрос?
Поделитесь своим опытом и знаниями
Войти и ответить на вопрос
Читайте также

Как округлить до десятых числа: 16.88, 4.651, 1.29, 48.23, 36.96; до сотых число 8.636?

Всем трям, то есть здравствуйте. :) Я по жизни оптимист, натуралист, огородник-г...

Чтобы округлить до десятых, нужно убрать после запятой все цифры, кроме одной.

Если следующая после остающейся цифра 0, 1, 2, 3 или 4, то цифру не изменяем.

Если следующая после остающейся - 5, 6, 7, 8 или 9, то цифру увеличиваем на единицу.

16,88 → 16,9

4,651 → 4,7

1,29 → 1,3

48,23 → 48,2

36,96 → 37

С сотыми по тому же принципу, только после запятой оставляем 2 цифры.

8,636 → 8,64

14 октября 2018  · 47,1 K
Прочитать ещё 1 ответ

Как посчитать сумму чисел в столбце в Excel, если в некоторых ячейках идет не одна цифра, а именно "10+10"?

Стандартными средствами не посчитать никак. Excel не поймет такой формы записи и воспримет это как текст. А суммировать текст невозможно.

Тут логика такова- глазами вы понимаете, что для получения числа в этой ячейке -надо сначала сложить эти числа и получить число. Но Excel этого не поймет и в результате не посчитает. Придется разнести эти числа в отдельные ячейки

17 января  · 1,8 K
Прочитать ещё 2 ответа

Как в гугл таблице создать условие, что если в клетке стоит что-то больше 0, то прибавляем число, если 0, то так и оставить?

Просто решил "прокачаться" в Excel и помочь кому могу)

Вам подойдёт "=ЕСЛИ(A1>0;A1+$D$1;0)", А1 это ячейка с числом в D1 находится число которое прибавляем, можете при желании просто указать само число в формуле. При отлицательном значении так же будет писаться 0. К сожалению сейчас отвечаю с телефона и не могу прикрепить большей информации.

Почему программисты пишут программы на C++ и подобных сложных языках, если на Python синтаксис проще, и можно написать программу быстрее?

Андрей Плахов
Эксперт
904
Кандидат физ.-мат. наук, делаю Яндекс, увлекаюсь всем на свете

Вопрос содержит несколько неявных предположений, с ними нужно быть осторожней.

Во-первых, смотря что называть "продолжают писать". Если верить TIOBE index, самому известному индексу популярности языков программирования, за последние 20 лет популярность С++ снизилась почти втрое, а популярность Питона возросла раз в семь. Python обогнал С++ примерно полтора года назад.

Во-вторых, "подобных сложных языков", пожалуй, больше и нет. Из распространенных языков программирования С++ самый монструозный и "навороченный", с кучей парадигм, синтаксических конструкций и тонкостей, позволяющих сотней способов "выстрелить себе в ногу".

В-третьих, на Python можно написать быстрее далеко не любую программу. Если говорить упрощённо, на Python можно быстрее писать многие программы за счёт того, что некоторые писать почти невозможно. Прежде всего, работающие с железом на низком уровне и такие, которые должны выжимать из производительности всё возможное (операционные системы, драйверы, игровые движки).

Ещё одна очень распространенная проблема -- это interop и связанная с ним инерция. Программа на Питоне может быть проще, но если ей нужно будет постоянно общаться с уже имеющимися в системе программами, написанными годы назад, например, на С++, то необходимая для этого общения прослойка, как правило, "сжирает" всю простоту, а программисту оказывается нужно хорошо знать не более простой язык, а сразу оба.

5 августа  · 45,0 K
Прочитать ещё 38 ответов

Доказать что при каждом n число 2n^3+3n^2+7n кратно 6?

Интересы часто менялись, поэтому во многих областях знаний что-то знаю:)

2n^3 - 3n^2 + n=n(2n^2-3n+1)=n(n-1)(2n-1)

Понятно, что n(n-1) делится на 2. Пусть при этом n(n-1) не делится на 3, тогда n-1 дает остаток 1 при делении на 3, n остаток 2. А их сумма n+(n-1)=2n-1 дает "остаток" 2+1=3, т.е. 2n-1 делится на 3. Т.о., при любых n n(n-1)(2n-1) делится на 2 и 3, след., делится на 6.