Мое обходное решение:
function add(a, b, precision) {
var x = Math.pow(10, precision || 2);
return (Math.round(a * x) + Math.round(b * x)) / x;
}
precision относится к числу цифр, которые вы хотите сохранить после десятичной точки во время добавления.
Выражения содержат только идентификаторы , литералов и операторов , где операторы включают арифметические и булевы операторы, функция оператор вызова ()
оператор подписки []
и т. д. и может быть сведен к некоторому «значению», которое может быть любым объектом Python. Примеры:
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
Заявления (см. 1 , 2 ), на Другими словами, это все, что может составлять линию (или несколько строк) кода Python. Обратите внимание, что выражения также являются операторами. Примеры:
# all the above expressions
print 42
if x: do_y()
return
a = 7
Выражение - это что-то, в то время как оператор делает что-то. Выражение также является выражением, но оно должно иметь возврат.
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS: Интерпретатор всегда печатает значения всех выражений.
Выражение - из моего словаря:
выражение: Математика набор символов, которые совместно выражают количество: выражение для окружности круга равно 2πr .
blockquote>В общих общих терминах: выражения выражают хотя бы одно значение.
В Python выражения широко рассматриваются в справочнике языка Python В общем случае выражения в Python состоят из синтаксически-юридической комбинации операторов Atoms , Primaries и .
Примеры выражений:
Литералы и синтаксически правильные комбинации с Операторы и встроенные функции или вызов пользовательских функций:
>>> 23 23 >>> 23l 23L >>> range(4) [0, 1, 2, 3] >>> 2L*bin(2) '0b100b10' >>> def func(a): # Statement, just part of the example... ... return a*a # Statement... ... >>> func(3)*4 36 >>> func(5) is func(a=5) True
Заявление из Википедии:
В компьютерном программировании утверждение можно рассматривать как наименьший автономный элемент императивного языка программирования. Программа формируется последовательностью одного или нескольких операторов. Оператор будет иметь внутренние компоненты (например, выражения).
blockquote>В общих общих терминах: Заявления Сделайте что-то и часто состоят из выражений (или других операторов)
Справочник по языку Python охватывает простые выражения и сложные выражения .
. Различие в выражениях «Выражения делают что-то» и «выражения производят значение» может различаться, однако:
- List Consrehensions считаются " Выражения ", но у них есть петлевые конструкции, а также Do Something.
if
обычно является выражением, напримерif x<0: x=0
, но вы также можете иметь условное выражение , подобноеx=0 if x<0 else 1
, которые являются выражениями. В других языках, таких как C, эта форма называется оператором, подобным этомуx=x<0?0:1;
- . Вы можете написать собственные выражения, написав функцию.
def func(a): return a*a
является выражением при использовании, но составленным из утверждений, если определено.- Выражение, которое возвращает
None
, является процедурой в Python:def proc(): pass
Синтаксически вы можете использоватьproc()
как выражение, но это, вероятно, ошибка ...- Python немного более строг, чем сказать, что C - это различия между выражением и выражением. В C любое выражение является юридическим утверждением. Вы можете
func(x=2);
это выражение или заявление? ( Ответ: выражение, используемое как заявление с побочным эффектом. ) Формаfunc(x=2)
является незаконной в Python (или, по крайней мере, имеет другое значениеfunc(a=3)
устанавливает именованный аргументa
к 3)
Выражения представляют собой действие или команду, например print statements, операторы присваивания.
print 'hello', x = 1
Выражение представляет собой комбинацию переменных, операций и значений, которые дают значение результата.
5 * 5 # yields 25
Наконец, операторы выражения
print 5*5
Выражение - это то, что можно свести к значению, например "1+3"
или "foo = 1+3"
.
Легко проверить:
print foo = 1+3
Если это не так Это работает, это выражение, это выражение.
Другим утверждением может быть:
class Foo(Bar): pass
, поскольку его нельзя свести к значению.
Оператор содержит ключевое слово.
Выражение не содержит ключевое слово.
print "hello"
является оператором, поскольку print
является ключевым словом.
"hello"
является выражением, но сжатие списка против этого.
Ниже приведен оператор выражения, и это истинно без понимания списка:
(x*2 for x in range(10))
Я думаю, что выражение содержит операторы + операнды и объект, который содержит результат операции ... например,
var sum = a + b;
, но оператор - это просто строка кода (это может быть выражение) или блок кода ... например
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
else
println("Hi there!")
// `return Unit` or `return` is optional
}
Выражения:
objects
и operators
. <object><operator><object>
2.0 + 3
- выражение, которое оценивается как 5.0
и имеет тип float
, связанный с ним.
Заявления
Заявления состоят из выражения (выражений). Он может охватывать несколько строк.
Хотя это не связано с Python:
А expression
оценивает значение. A statement
что-то делает.
>>> x = 1
>>> y = x + 1 # an expression
>>> print y # a statement (in 2.x)
2
Python вызывает выражения «выражения», поэтому вопрос, возможно, не полностью сформирован.
Оператор состоит из почти всего, что вы можете сделать в Python: вычисление значения, назначение значения, удаление переменная, печать значения, возврат из функции, создание исключения и т. д. Полный список находится здесь: http://docs.python.org/reference/simple_stmts.html#
Выражение выражения ограничено вызывающими функциями (например, math.cos (theta) »), операторами (например,« 2 + 3 ») и т. д. для получения значения.