Math.round methode

Introduction

The Casio fx-991MS is an affordable scientific calculator with many powerful features. Some of these can greatly reduce the effort to solve problems, while others can be abused in interesting and fun ways. Being able to use these features can also be helpful on tests and exams where scientific calculators are allowed but more powerful graphing calculators are not.

On this page, I will show you some advanced and clever tricks that you can do with the calculator. Although the article is for the Casio fx-991MS calculator (and all the tricks mentioned here are guaranteed to work on it), the calculator features and underlying mathematical principles for the tricks are quite general and can be applied to many other calculators as well. (When you understand the trick and your calculator’s features, you’ll be able to translate the instructions for your situation.)

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward positive infinity.

Ceiling(Decimal)

Returns the smallest integral value that is greater than or equal to the specified decimal number.

d

Decimal

A decimal number.

Returns

Decimal

The smallest integral value that is greater than or equal to . Note that this method returns a Decimal instead of an integral type.

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward positive infinity. In other words, if is positive, the presence of any fractional component causes to be rounded to the next highest integer. If is negative, the rounding operation causes any fractional component of to be discarded. The operation of this method differs from the method, which supports rounding toward negative infinity.

  • Round

Ceiling(Double)

Returns the smallest integral value that is greater than or equal to the specified double-precision floating-point number.

a

Double

A double-precision floating-point number.

Returns

Double

The smallest integral value that is greater than or equal to . If is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned. Note that this method returns a Double instead of an integral type.

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward positive infinity. In other words, if is positive, the presence of any fractional component causes to be rounded to the next highest integer. If is negative, the rounding operation causes any fractional component of to be discarded. The operation of this method differs from the method, which supports rounding toward negative infinity.

Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the method to the any of the integral conversion functions, or if the Double value returned by is automatically converted to an integer with Option Strict set to Off. This optimization allows code to run faster — up to twice as fast for code that does a large number of conversions to integer types. The following example illustrates such optimized conversions:

  • Round

Iterating formulas

A major difference between this calculator and older scientific calculators is that this calculator does not evaluate the expression while you input it. After you finish entering the expression, you press the equals key () and the calculator evaluates the expression all at once.

The most recent expression evaluated can be re-evaluated simply by pressing the equals key. The result of each evaluation is always saved in the answer variable (). For single-statement iterations, it is most convenient to use Ans as the iterated variable. For example, is functionally equivalent but easier to type than .

Multi-statement iterations can be written by using colon () to separate the statements. When evaluating, press the equals key once per statement, and the calculator evaluates them in sequence. When all the statements in the line have been evaluated, pressing the equals key will go back to evaluating the first statement. For example, is a multi-statement line.

Remember to give initial values to all the variables used in the iterations.

Simple iterations

Arithmetic sequence

For example, starting at 0 and counting up by 1:

  1. Initialize: Evaluate (sets Ans to 0).

  2. Iterate: Evaluate .

Geometric sequence

For example, starting at 1 and doubling:

  1. Initialize: Evaluate (sets Ans to 1).

  2. Iterate .

Repeated squaring

For example, starting at 1.000000001 and squaring:

  1. Initialize: Evaluate (sets Ans to 1.000000001).

  2. Iterate .

(The value overflows after 38 iterations.)

Logistic map

For example, the chaos at r = 4:

  1. Initialize: Evaluate (sets Ans to 0.2).

  2. Iterate and watch the randomness.

Newton’s method iteration

To solve an equation of the form f(x) = 0:

  1. Set Ans to an initial value close to a root (solution).

  2. Iterate the expression Ansf(Ans)/f′(Ans), where f′ is the derivative of f.

For example, to solve x2 − 3 = 0:

  1. Initialize: Evaluate .

  2. Iterate .

After a number of iterations, the result should converge to 1.732050808 or −1.732050808, depending on the initial value.

Fixed-point iteration

It is possible to solve equations of the form f(x) = x by simply iterating xnext = f(x).

Examples:

  • Iterating , the answer converges to 0.739085133 in radians mode and 0.999847741 in degrees mode.

  • Iterating (i.e., eAns), the answer converges to 0.567143290.

Unfortunately, fixed-point iteration is generally slower and less reliable than Newton’s method.

Taylor series iterations

We can manually simulate some elementary functions using naive Taylor series.

Exponential function
  1. Initialize with the argument of your choice.

  2. Initialize: , ,

  3. Iterate:

  4. Read the answer from A.

Cosine function
  1. Initialize with the argument of your choice.

  2. Initialize: , ,

  3. Iterate:

  4. Read the answer from A.

Sine function
  1. Initialize with the argument of your choice.

  2. Initialize: , ,

  3. Iterate:

  4. Read the answer from A.

Procedure:

  1. Initialize: ,

  2. Iterate:

Greatest common divisor iteration

This is based on the original Euclidean algorithm, which uses repeated subtraction rather than the modulus (remainder) operation. The procedure:

  1. Set the mode to complex numbers (). (This is needed in order to use the absolute value function.)

  2. Initialize: Set A and B to be the natural numbers whose GCD will be computed.

  3. Iterate: . (Quite a mouthful, isn’t it?)

  4. When A and B converge to the same number, that number is the GCD answer.

Note that the function f(x) = (tanh(20x) − |tanh(20x)|) / 2 hackily emulates a step function, with f(x) = 0 for x ≤ 0 and f(x) = 1 for x ≥ 1. (This is due to the finite precision and rounding.)

Thanks to Bojan Petrovic for suggesting this trick!

Overloads

Returns the absolute value of a Decimal number.

Returns the absolute value of a double-precision floating-point number.

Returns the absolute value of a 16-bit signed integer.

Returns the absolute value of a 32-bit signed integer.

Returns the absolute value of a 64-bit signed integer.

Returns the absolute value of an 8-bit signed integer.

Returns the absolute value of a single-precision floating-point number.

Abs(Decimal)

Returns the absolute value of a Decimal number.

value

Decimal

A number that is greater than or equal to MinValue, but less than or equal to MaxValue.

Returns

Decimal

A decimal number, x, such that 0 ≤ x ≤MaxValue.

The following example uses the method to get the absolute value of a number of Decimal values.

Remarks

The absolute value of a Decimal is its numeric value without its sign. For example, the absolute value of both 1.2 and -1.2 is 1.2.

Abs(Double)

Returns the absolute value of a double-precision floating-point number.

value

Double

A number that is greater than or equal to MinValue, but less than or equal to MaxValue.

Returns

Double

A double-precision floating-point number, x, such that 0 ≤ x ≤MaxValue.

The following example uses the method to get the absolute value of a number of Double values.

Remarks

The absolute value of a Double is its numeric value without its sign. For example, the absolute value of both 1.2e03 and -1.2e03 is 1.2e03.

If is equal to NegativeInfinity or PositiveInfinity, the return value is PositiveInfinity. If is equal to NaN, the return value is NaN.

Abs(Int16)

Returns the absolute value of a 16-bit signed integer.

value

Int16

A number that is greater than MinValue, but less than or equal to MaxValue.

Returns

Int16

A 16-bit signed integer, x, such that 0 ≤ x ≤MaxValue.

Exceptions

OverflowException

equals MinValue.

The following example uses the method to get the absolute value of a number of Int16 values.

Remarks

The absolute value of an Int16 is its numeric value without its sign. For example, the absolute value of both 123 and -123 is 123.

Abs(Int32)

Returns the absolute value of a 32-bit signed integer.

value

Int32

A number that is greater than MinValue, but less than or equal to MaxValue.

Returns

Int32

A 32-bit signed integer, x, such that 0 ≤ x ≤MaxValue.

Exceptions

OverflowException

equals MinValue.

The following example uses the method to get the absolute value of a number of Int32 values.

Remarks

The absolute value of an Int32 is its numeric value without its sign. For example, the absolute value of both 123 and -123 is 123.

Abs(Int64)

Returns the absolute value of a 64-bit signed integer.

value

Int64

A number that is greater than MinValue, but less than or equal to MaxValue.

Returns

Int64

A 64-bit signed integer, x, such that 0 ≤ x ≤MaxValue.

Exceptions

OverflowException

equals MinValue.

The following example uses the method to get the absolute value of a number of Int64 values.

Remarks

The absolute value of an Int64 is its numeric value without its sign. For example, the absolute value of both 123 and -123 is 123.

Abs(SByte)

Important

This API is not CLS-compliant.

Returns the absolute value of an 8-bit signed integer.

value

SByte

A number that is greater than MinValue, but less than or equal to MaxValue.

Returns

SByte

An 8-bit signed integer, x, such that 0 ≤ x ≤MaxValue.

Attributes

CLSCompliantAttribute

Exceptions

OverflowException

equals MinValue.

The following example uses the method to get the absolute value of a number of SByte values.

Remarks

The absolute value of a signed byte is its numeric value without its sign. For example, the absolute value of both 12 and -12 is 12.

Abs(Single)

Returns the absolute value of a single-precision floating-point number.

value

Single

A number that is greater than or equal to MinValue, but less than or equal to MaxValue.

Returns

Single

A single-precision floating-point number, x, such that 0 ≤ x ≤MaxValue.

Remarks

The absolute value of a Single is its numeric value without its sign. For example, the absolute value of both 1.2e-03 and -1.2e03 is 1.2e03.

If is equal to NegativeInfinity or PositiveInfinity, the return value is PositiveInfinity. If is equal to NaN, the return value is NaN.

Constants¶

The mathematical constant π = 3.141592…, to available precision.

The mathematical constant e = 2.718281…, to available precision.

The mathematical constant τ = 6.283185…, to available precision.
Tau is a circle constant equal to 2π, the ratio of a circle’s circumference to
its radius. To learn more about Tau, check out Vi Hart’s video Pi is (still)
Wrong, and start celebrating
Tau day by eating twice as much pie!

New in version 3.6.

A floating-point positive infinity. (For negative infinity, use
.) Equivalent to the output of .

New in version 3.5.

A floating-point “not a number” (NaN) value. Equivalent to the output of
.

New in version 3.5.

CPython implementation detail: The module consists mostly of thin wrappers around the platform C
math library functions. Behavior in exceptional cases follows Annex F of
the C99 standard where appropriate. The current implementation will raise
for invalid operations like or
(where C99 Annex F recommends signaling invalid operation or divide-by-zero),
and for results that overflow (for example,
). A NaN will not be returned from any of the functions
above unless one or more of the input arguments was a NaN; in that case,
most functions will return a NaN, but (again following C99 Annex F) there
are some exceptions to this rule, for example or
.

Note that Python makes no effort to distinguish signaling NaNs from
quiet NaNs, and behavior for signaling NaNs remains unspecified.
Typical behavior is to treat all NaNs as though they were quiet.

See also

Module

Complex number versions of many of these functions.

Математические вычисления и класс Math

Последнее обновление: 28.10.2018

Для выполнения различных математических операций в Java в пакете java.lang определен класс
Math. Рассмотрим его основные методы:

  • : возвращает абсолютное значение для аргумента value

    double result = Math.abs(-13.5); // 13.5
    
  • : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1

    double result = Math.acos(1); // 0.0
    
  • : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1

  • : возвращает арктангенс value

  • : возвращает кубический корень числа value

    double result = Math.cbrt(27); // 3
    
  • : возвращает наименьшее целое число с плавающей точкой, которое не меньше value

    double result = Math.ceil(2.34); // 3
    
  • : возвращает косинус угла d

  • : возвращает гиперболический косинус угла d

  • : возвращает основание натурального логарифма, возведенное в степень d

  • : возвращает наибольшее целое число, которое не больше d

    double result = Math.floor(2.56); // 2
    
  • : возвращает целочисленный результат деления a на b

    System.out.println(Math.floorDiv(1, 2)); // 0
    System.out.println(Math.floorDiv(7, 2)); // 3
    System.out.println(Math.floorDiv(9, 2)); // 4
    
  • : возвращает натуральный логарифм числа a

  • : возвращает натуральный логарифм числа (d + 1)

  • : возвращает десятичный логарифм числа d

  • : возвращает максимальное число из a и b

  • : возвращает минимальное число из a и b

  • : возвращает число a, возведенное в степень b

  • : возвращает случайное число от 0.0 до 1.0

  • : возвращает число double, которое представляет ближайшее к числу value целое число

    System.out.println(Math.rint(2)); // 2.0
    System.out.println(Math.rint(2.3)); // 2.0
    System.out.println(Math.rint(2.5)); // 2.0
    System.out.println(Math.rint(2.5001)); // 3.0
    System.out.println(Math.rint(2.8)); // 3.0
    
  • : возвращает число d, округленное до ближайшего целого числа

    System.out.println(Math.round(2.3)); // 2
    System.out.println(Math.round(2.5)); // 3
    System.out.println(Math.round(2.5001)); // 3
    System.out.println(Math.round(2.8)); // 3
    
  • : возвращает произведение числа value на 2 в степени factor

    System.out.println(Math.scalb(5, 3)); // 5*2*2*2 = 40
    System.out.println(Math.scalb(3, 4)); // 3*2*2*2*2 = 48
    
  • : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0

    System.out.println(Math.signum(2.3)); // 1
    System.out.println(Math.signum(-2.3)); // -1
    
  • : возвращает синус угла value

  • : возвращает гиперболический синус угла value

  • : возвращает квадратный корень числа value

    double result1 = Math.sqrt(16); // 4
    
  • : возвращает тангенс угла value

  • : возвращает гиперболический тангенс угла value

  • переводит радианы в градусы и — градусы в радианы

    System.out.println(Math.toDegrees(3.14159)); // 180
    System.out.println(Math.toRadians(90)); // 1,57079....
    

Также класс Math определяет две константы: и . Например, вычислим площадь круга:

import java.util.Scanner;

public class Program {
  
    public static void main(String[] args) {
          
        Scanner in = new Scanner(System.in);
        
        System.out.print("Введите радиус круга: ");
        int radius = in.nextInt();
        long area = Math.round(Math.PI * Math.pow(radius, 2));
        System.out.printf("Площадь круга с радиусом %d равна %d \n", radius, area);
    }
}

Консольный вывод:

Введите радиус круга: 10
Площадь круга с радиусом 10 равна 314

НазадВперед

Constants

Mathematical constants.

const (
    E   = 2.71828182845904523536028747135266249775724709369995957496696763 
    Pi  = 3.14159265358979323846264338327950288419716939937510582097494459 
    Phi = 1.61803398874989484820458683436563811772030917980576286213544862 

    Sqrt2   = 1.41421356237309504880168872420969807856967187537694807317667974 
    SqrtE   = 1.64872127070012814684865078781416357165377610071014801157507931 
    SqrtPi  = 1.77245385090551602729816748334114518279754945612238712821380779 
    SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 

    Ln2    = 0.693147180559945309417232121458176568075500134360255254120680009 
    Log2E  = 1 / 
    Ln10   = 2.30258509299404568401799145468436420760110148862877297603332790 
    Log10E = 1 / 
)

Floating-point limit values.
Max is the largest finite value representable by the type.
SmallestNonzero is the smallest positive, non-zero value representable by the type.

const (
    MaxFloat32             = 3.40282346638528859811704183484516925440e+38  
    SmallestNonzeroFloat32 = 1.401298464324817070923729583289916131280e-45 

    MaxFloat64             = 1.797693134862315708145274237317043567981e+308 
    SmallestNonzeroFloat64 = 4.940656458412465441765687928682213723651e-324 
)

Integer limit values.

Конвертация типов числа в Python

Python может конвертировать начальный тип числа в другой указанный тип. Данный процесс называется «преобразованием». Python может внутренне конвертировать число одного типа в другой, когда в выражении присутствуют смешанные значения. Такой случай продемонстрирован в следующем примере:

Python

3 + 5.1

1 3+5.1

Вывод

Shell

8.1

1 8.1

В вышеприведенном примере целое число 3 было преобразовано в вещественное число 3.0 с плавающей точкой. Результатом сложения также является число с плавающей точкой (или запятой).

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

Например, чтобы преобразовать целое число в число с плавающей точкой, мы должны вызвать функцию , как показано ниже:

Python

a = 12
b = float(a)
print(b)

1
2
3

a=12

b=float(a)

print(b)

Вывод

Shell

12.0

1 12.0

Целое число типа было преобразовано в вещественное число типа . также можно конвертировать в следующим образом:

Python

a = 12.65
b = int(a)
print(b)

1
2
3

a=12.65

b=int(a)

print(b)

Вывод

Shell

12

1 12

Вещественное число было преобразовано в целое через удаление дробной части и сохранение базового числа

Обратите внимание, что при конвертации значения в подобным образом число будет усекаться, а не округляться вверх

Заключение

Библиотека Math предоставляет функции и константы, которые можно использовать для выполнения арифметических и тригонометрических операций в Python. Библиотека изначально встроена в Python, поэтому дополнительную установку перед использованием делать не требуется. Для получения дополнительной информации можете просмотреть официальную документацию.

Power and logarithmic functions¶

(x)

Return e raised to the power x, where e = 2.718281… is the base
of natural logarithms. This is usually more accurate than
or .

(x)

Return e raised to the power x, minus 1. Here e is the base of natural
logarithms. For small floats x, the subtraction in
can result in a significant loss of precision; the
function provides a way to compute this quantity to full precision:

>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05

New in version 3.2.

(x, base)

With one argument, return the natural logarithm of x (to base e).

With two arguments, return the logarithm of x to the given base,
calculated as .

(x)

Return the natural logarithm of 1+x (base e). The
result is calculated in a way which is accurate for x near zero.

(x)

Return the base-2 logarithm of x. This is usually more accurate than
.

New in version 3.3.

See also

returns the number of bits necessary to represent
an integer in binary, excluding the sign and leading zeros.

(x)

Return the base-10 logarithm of x. This is usually more accurate
than .

(x, y)

Return raised to the power . Exceptional cases follow
Annex ‘F’ of the C99 standard as far as possible. In particular,
and always return , even
when is a zero or a NaN. If both and are finite,
is negative, and is not an integer then
is undefined, and raises .

Unlike the built-in operator, converts both
its arguments to type . Use or the built-in
function for computing exact integer powers.

Арифметические функции в Python

Арифметические функции используются для представления чисел в различных формах и осуществления над ними математических операций. Далее представлен перечень самых популярных арифметических функций:

  • : округление определенного числа вверх;
  • : возвращает модуль (абсолютное значение) указанного числа;
  • : округление определенного числа вниз;
  • : получение наибольшего общего делителя чисел и ;
  • : возвращает сумму всех элементов итерируемого объекта;
  • : возвращает (e^x)-1;
  • : когда значение слишком мало, вычисление может привести к значительной потери в точности. может вернуть вывод с полной точностью.

В следующем примере показано использование перечисленных выше функций:

Python

import math

num = -4.28
a = 14
b = 8

num_list =
x = 1e-4 # Малое значение x

print(‘Число:’, num)
print(‘Округление числа вниз:’, math.floor(num))
print(‘Округление числа вверх:’, math.ceil(num))
print(‘Модуль числа:’, math.fabs(num))
print(‘Наибольший общий делитель a и b: ‘ + str(math.gcd(a, b)))
print(‘Сумма элементов списка: ‘ + str(math.fsum(num_list)))
print(‘e^x (при использовании функции exp()) равно:’, math.exp(x)-1)
print(‘e^x (при использовании функции expml()) равно:’, math.expm1(x))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

importmath

num=-4.28

a=14

b=8

num_list=10,8.25,75,7.04,-86.23,-6.43,8.4

x=1e-4# Малое значение x

print(‘Число:’,num)

print(‘Округление числа вниз:’,math.floor(num))

print(‘Округление числа вверх:’,math.ceil(num))

print(‘Модуль числа:’,math.fabs(num))

print(‘Наибольший общий делитель a и b: ‘+str(math.gcd(a,b)))

print(‘Сумма элементов списка: ‘+str(math.fsum(num_list)))

print(‘e^x (при использовании функции exp()) равно:’,math.exp(x)-1)

print(‘e^x (при использовании функции expml()) равно:’,math.expm1(x))

Вывод

Python

Число: -4.28
Округление числа вниз: -5
Округление числа вверх: -4
Модуль числа: 4.28
Наибольший общий делитель a и b: 2
Сумма элементов списка: 16.029999999999998
e^x (при использовании функции exp()) равно: 0.0001000050001667141
e^x (при использовании функции expml()) равно: 0.00010000500016667084

1
2
3
4
5
6
7
8

Число-4.28

Округлениечиславниз-5

Округлениечиславверх-4

Модульчисла4.28

Наибольшийобщийделительaиb2

Суммаэлементовсписка16.029999999999998

e^x(прииспользованиифункцииexp())равно0.0001000050001667141

e^x(прииспользованиифункцииexpml())равно0.00010000500016667084

К числу других математических функций относятся:

  • : принимает два вещественных аргумента, возводит первый аргумент в степень, значением которой является второй аргумент, после чего возвращает результат. К примеру, эквивалентно выражению ;
  • : возвращает квадратный корень определенного числа.

Примеры данных методов представлены ниже:

Возведение в степень

Python

math.pow(3, 4)

1 math.pow(3,4)

Вывод

Shell

81.0

1 81.0

Квадратный корень

Python

math.sqrt(81)

1 math.sqrt(81)

Вывод

Shell

9.0

1 9.0

Учимся округлять в C#

Дата: 18 сентября 2013.
Теги:
.NET
C#
Rounding
CheatSheet

А знаете ли вы, что ? Можете ли сходу сказать, сколько будет и ? Помните ли, чем отличаются
, , , ? А как происходит округление при использовании ? Давайте немного погрузимся в мир округлений и разберёмся с нюансами, которые не для всех могут быть очевидными.

Math.Round

MSDN:
Round

— это метод округления к ближайшему числу или к ближайшему числу с заданным количеством знаков после запятой. Работает с типами и , в параметрах можно встретить три вида параметров:

  • : округляемое число
  • : количество знаков в дробной части, которые нужно оставить
  • : параметр, который определяет в какую сторону округлять число, которое находится ровно посередине между двумя вариантами

Параметр используется, когда округляемое значение находится ровно посередине между двумя вариантами. Принимает значение из следующего перечисления:

  • : округление происходит к тому числу, которое дальше от нуля.
  • : округление происходит к чётному числу.

Обратите внимание, что по умолчанию , поэтому

Math.Floor, Math.Ceiling, Math.Truncate

MSDN:
Floor,
Ceiling,
Truncate

  • округляет вниз по направлению к отрицательной бесконечности.
  • округляет вверх по направлению к положительной бесконечности.
  • округляет вниз или вверх по направлению к нулю.

Сводная таблица

Сориентироваться в методах округления может помочь следующая табличка:

Округление проводится в соответствии со стандартом IEEE Standard 754, section 4.

Целочисленное деление и взятие по модулю

В C# есть два замечательных оператора над целыми числами: для целочисленного деления (MSDN) и
для взятия остатка от деления (MSDN). Деление производится по следующим правилам:

  • При целочисленном делении результат всегда округляется по направлению к нулю.
  • При взятии остатка от деления должно выполняться следующее правило:

Также можно пользоваться шпаргалкой:

string.Format

При форматировании чисел в виде строки можно пользоваться функцией (см. Standard Numeric Format Strings, Custom Numeric Format Strings). Например, для вывода числа с двумя знаками после десятичной точки можно воспользоваться или . Округление происходит по принципу . Проиллюстрируем правила округления очередной табличкой:

Задачи

На приведённую тему есть две задачки в ProblemBook.NET: Rounding1, Rounding2.

Исходный код поста находится на GitHub:https://github.com/AndreyAkinshin/aakinshin.net/blob/master/web/_posts/ru/2013/cheatsheet-rounding.md

Ссылка на основную публикацию