Most BCX mathematical functions return DOUBLE floating point values and expect DOUBLE floating point values for their arguments.
BCX LDOUBLE functions return LDOUBLE floating point values and expect LDOUBLE floating point values for their arguments.
PI is a case-insensitive double precision numeric literal with a value of 3.141592653589793.
👉 Programs will need to be updated where a PI identifier has been used. That means removing your use of the PI identifier, regardless of case or data type. If you insist on having your definition of PI, you will need to change its name to something else like myPI.
DEGTORAD converts angular units from degrees to radians.
Syntax:AngleInRadians = DEGTORAD(AngleInDegrees AS DOUBLE) Return Value:
Parameters:
|
$BCXVERSION "8.0.4" DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE SineOfAngle DIM AS STRING TheAnswer DegreeAngle = 36.0 RadianAngle = DEGTORAD(DegreeAngle) SineOfAngle = SIN(RadianAngle) SPRINT TheAnswer, "The sine of", STR$(DegreeAngle), " degrees is", SineOfAngle PRINT TheAnswer
The sine of 36 degrees is 0.587785252292464
RADTODEG converts angular units from radians to degrees.
Syntax:AngleInDegrees = RADTODEG(AngleInRadians AS DOUBLE) Return Value:
Parameters:
|
$BCXVERSION "8.0.4" DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE SineOfAngle DIM AS STRING TheAnswer DegreeAngle = 36.0 RadianAngle = DEGTORAD(DegreeAngle) SineOfAngle = SIN(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a sine trigonometric ratio of", SineOfAngle PRINT TheAnswer RadianAngle = ASIN(SineOfAngle) DegreeAngle = RADTODEG(RadianAngle) SPRINT TheAnswer, "The sine trigonometric ratio of", SineOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a sine trigonometric ratio of 0.587785252292464 The sine trigonometric ratio of 0.587785252292464 corresponds to an angle of 35.9999999999994 degrees.
Trigonometric functions are used to obtain an angle's trigonometric ratio from an angle.
All trigonometric functions use radians, not degrees, for their arguments and return values.
The inverse trigonometric functions return radian values.
SIN returns the DOUBLE sine trigonometric ratio of a radian value angle.
Syntax:SineOfAngle = SIN(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE SineOfAngle DIM AS STRING TheAnswer RadFromDeg = (PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg SineOfAngle = SIN(RadianAngle) SPRINT TheAnswer, "The sine of", STR$(DegreeAngle), " degrees is", SineOfAngle PRINT TheAnswer
The sine of 36 degrees is 0.587785252292473
SINL returns the LDOUBLE sine trigonometric ratio of an angle.
Syntax:SineOfAngle = SINL(RadianAngle AS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM SineOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg SineOfAngle = SINL(RadianAngle) SPRINT TheAnswer, "The sine of", STR$(DegreeAngle), " degrees is", SineOfAngle PRINT TheAnswer
The sine of 36 degrees is 0.5877852522924731292
COS returns the DOUBLE cosine trigonometric ratio of an angle.
Syntax:CosineOfAngle = COS(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE CosineOfAngle DIM AS STRING TheAnswer RadFromDeg = (PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg CosineOfAngle = COS(RadianAngle) SPRINT TheAnswer, "The cosine of", STR$(DegreeAngle), " degrees is", CosineOfAngle PRINT TheAnswer
The cosine of 36 degrees is 0.809016994374947
COSL returns the LDOUBLE cosine trigonometric ratio of an angle.
Syntax:CosineOfAngle = COSL(RadianAngleAS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM CosineOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg CosineOfAngle = COSL(RadianAngle) SPRINT TheAnswer, "The cosine of", STR$(DegreeAngle), " degrees is", CosineOfAngle PRINT TheAnswer
The cosine of 36 degrees is 0.8090169943749474241
TAN returns the DOUBLE tangent trigonometric ratio of an angle.
Syntax:TangentOfAngle = TAN(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE TangentOfAngle DIM AS STRING TheAnswer RadFromDeg = (PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg TangentOfAngle = TAN(RadianAngle) SPRINT TheAnswer, "The tangent of", STR$(DegreeAngle), " degrees is", TangentOfAngle PRINT TheAnswer
The tangent of 36 degrees is 0.726542528005361
TANL returns the LDOUBLE tangent trigonometric ratio of an angle.
Syntax:TangentOfAngle = TANL(RadianAngle AS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM TangentOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg TangentOfAngle = TANL(RadianAngle) SPRINT TheAnswer, "The tangent of", STR$(DegreeAngle), " degrees is", TangentOfAngle PRINT TheAnswer
The tangent of 36 degrees is 0.7265425280053608859
Inverse trigonometric functions are used to obtain an angle from an angle's trigonometric ratio.
ASIN returns the DOUBLE radian angle of a sine trigonometric ratio.
Syntax:RadianAngle = ASIN(SineOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegFromRad DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE SineOfAngle DIM AS STRING TheAnswer DegFromRad# = (180.0 / PI) RadFromDeg# = (PI / 180.0) DegreeAngle# = 36.0 RadianAngle# = DegreeAngle * RadFromDeg SineOfAngle# = SIN(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a sine trigonometric ratio of", SineOfAngle PRINT TheAnswer RadianAngle = ASIN(SineOfAngle) DegreeAngle# = RadianAngle * DegFromRad SPRINT TheAnswer, "The sine trigonometric ratio of", SineOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a sine trigonometric ratio of 0.587785252292473 The sine trigonometric ratio of 0.587785252292473 corresponds to an angle of 36 degrees.
ASINL returns the LDOUBLE radian angle of a sine trigonometric ratio.
Syntax:RadianAngle = ASINL(SineOfAngle AS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegFromRad AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM SineOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. DegFromRad = (180.0 / LDbl_PI) RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg SineOfAngle = SINL(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a sine trigonometric ratio of", SineOfAngle PRINT TheAnswer RadianAngle = ASINL(SineOfAngle) DegreeAngle = RadianAngle * DegFromRad SPRINT TheAnswer, "The sine trigonometric ratio of", SineOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a sine trigonometric ratio of 0.5877852522924731292 The sine trigonometric ratio of 0.5877852522924731292 corresponds to an angle of 36 degrees.
ACOS returns the DOUBLE radian value angle of a cosine trigonometric ratio.
Syntax:RadianAngle# = ACOS(CosineOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegFromRad DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE CosineOfAngle DIM AS STRING TheAnswer DegFromRad = (180.0 / PI) RadFromDeg = (PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg CosineOfAngle = COS(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a cosine trigonometric ratio of", CosineOfAngle PRINT TheAnswer RadianAngle = ACOS(CosineOfAngle) DegreeAngle = RadianAngle * DegFromRad SPRINT TheAnswer, "The cosine trigonometric ratio of", CosineOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a cosine trigonometric ratio of 0.809016994374947 The cosine trigonometric ratio of 0.809016994374947 corresponds to an angle of 36 degrees.
ACOSL returns the LDOUBLE precision value of the radian angle of a cosine trigonometric ratio.
Syntax:RadianAngle = ACOSL(CosineOfAngle AS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegFromRad AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM CosineOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. DegFromRad = (180.0 / LDbl_PI) RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg CosineOfAngle = COSL(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a cosine trigonometric ratio of", CosineOfAngle PRINT TheAnswer RadianAngle = ACOSL(CosineOfAngle) DegreeAngle = RadianAngle * DegFromRad SPRINT TheAnswer, "The cosine trigonometric ratio of", CosineOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a cosine trigonometric ratio of 0.8090169943749474241 The cosine trigonometric ratio of 0.8090169943749474241 corresponds to an angle of 36 degrees.
ATN returns the DOUBLE radian value angle of a tangent trigonometric ratio.
Syntax:RadianAngle = ATN(TangentOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM AS DOUBLE RadFromDeg DIM AS DOUBLE DegFromRad DIM AS DOUBLE DegreeAngle DIM AS DOUBLE RadianAngle DIM AS DOUBLE TangentOfAngle DIM AS STRING TheAnswer DegFromRad = (180.0 / PI) RadFromDeg = (PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg TangentOfAngle = TAN(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a tangent trigonometric ratio of", TangentOfAngle PRINT TheAnswer RadianAngle = ATN(TangentOfAngle) DegreeAngle = RadianAngle * DegFromRad SPRINT TheAnswer, "The tangent trigonometric ratio of", TangentOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a tangent trigonometric ratio of 0.726542528005361 The tangent trigonometric ratio of 0.726542528005361 corresponds to an angle of 36 degrees.
ATNL returns the LDOUBLE precision value of the radian angle of a tangent trigonometric ratio.
Syntax:RadianAngle = ATNL(TangentOfAngle AS LDOUBLE) Return Value:
Parameters:
|
DIM LDbl_PI AS LDOUBLE DIM RadFromDeg AS LDOUBLE DIM DegFromRad AS LDOUBLE DIM DegreeAngle AS LDOUBLE DIM RadianAngle AS LDOUBLE DIM TangentOfAngle AS LDOUBLE DIM AS STRING TheAnswer LDbl_PI = (4.0 * ATNL(1.0)) ' 1.0 is radians not degrees. DegFromRad = (180.0 / LDbl_PI) RadFromDeg = (LDbl_PI / 180.0) DegreeAngle = 36.0 RadianAngle = DegreeAngle * RadFromDeg TangentOfAngle = TANL(RadianAngle) SPRINT TheAnswer, "The angle of", STR$(DegreeAngle), " degrees has a tangent trigonometric ratio of", TangentOfAngle PRINT TheAnswer RadianAngle = ATNL(TangentOfAngle) DegreeAngle = RadianAngle * DegFromRad SPRINT TheAnswer, "The tangent trigonometric ratio of", TangentOfAngle, " corresponds to an angle of", DegreeAngle, " degrees." PRINT TheAnswer
The angle of 36 degrees has a tangent trigonometric ratio of 0.7265425280053608859 The tangent trigonometric ratio of 0.7265425280053608859 corresponds to an angle of 36 degrees.
DIM DBL_Pi AS DOUBLE DIM LDBL_Pi AS LDOUBLE DBL_Pi = 4.0 * ATAN(1.0) LDBL_Pi = 4.0 * ATANL(1.0) PRINT "DOUBLE Pi =", DBL_Pi PRINT "LDOUBLE Pi =", LDBL_Pi PAUSE
DOUBLE Pi = 3.14159265358979 LDOUBLE Pi = 3.141592653589793239 Press any key to continue . . .
SINH returns the DOUBLE hyperbolic sine trigonometric ratio of a radian value angle.
Syntax:HypeSineOfAngle = SINH(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM HalfPi AS DOUBLE DIM DBLSinh AS DOUBLE HalfPi = 2.0 * ATAN(1.0) DBLSinh = SINH(HalfPi) PRINT DBLSinh
2.30129890230729
COSH returns the DOUBLE hyperbolic cosine trigonometric ratio of an angle.
Syntax:HypeCosineOfAngle = COSH(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM HalfPi AS DOUBLE DIM DBLCosh AS DOUBLE HalfPi = 2.0 * ATAN(1.0) DBLCosh = COSH(HalfPi) PRINT DBLCosh
2.50917847865806
TANH returns the DOUBLE tangent trigonometric ratio of an angle.
Syntax:HypeTangentOfAngle = TANH(RadianAngle AS DOUBLE) Return Value:
Parameters:
|
DIM QrtrPi AS DOUBLE DIM DBLTan AS DOUBLE DIM DBLTanh AS DOUBLE QrtrPi = ATAN(1.0) DBLTan = TAN(QrtrPi) DBLTanh = TANH(DBLTan) PRINT DBLTan PRINT DBLTanh
1 0.761594155955765
Inverse hyperbolic trigonometric functions are used to obtain a radian angle from a hyperbolic trigonometric ratio.
ASINH returns the DOUBLE radian value angle of a hyperbolic sine trigonometric ratio.
Syntax:RadianAngle = ASINH(HypeSineOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM QrtrPi AS DOUBLE DIM DBLSinh AS DOUBLE DIM DBLASinh AS DOUBLE QrtrPi = ATAN(1.0) DBLSinh = SINH(QrtrPi) DBLASinh = ASINH(DBLSinh) PRINT DBLSinh PRINT DBLASinh
0.86867096148601 0.785398163397448
ACOSH returns the DOUBLE radian value angle of a hyperbolic cosine trigonometric ratio.
Syntax:RadianAngle = ACOSH(HypeCosineOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM QrtrPi AS DOUBLE DIM DBLCosh AS DOUBLE DIM DBLACosh AS DOUBLE QrtrPi = ATAN(1.0) DBLCosh = COSH(QrtrPi) DBLACosh = ACOSH(DBLCosh) PRINT DBLCosh PRINT DBLACosh
1.32460908925201 0.785398163397448
ATANH returns the DOUBLE radian value angle of a hyperbolic tangent trigonometric ratio.
Syntax:RadianAngle = ATANH(HypeTangentOfAngle AS DOUBLE) Return Value:
Parameters:
|
DIM QrtrPi AS DOUBLE DIM DBLTanh AS DOUBLE DIM DBLATanh AS DOUBLE QrtrPi = ATAN(1.0) DBLTanh = TANH(QrtrPi) DBLATanh = ATANH(DBLTanh) PRINT DBLTanh PRINT DBLATanh
0.655794202632672 0.785398163397448
LOG returns the natural logarithmic DOUBLE value of a number.
Syntax:NatLogNum = LOG(TheNumber AS DOUBLE) Return Value:
Parameters:
|
LOGL returns the natural logarithmic LDOUBLE value of a number.
Syntax:NatLogNum = LOGL(TheNumber AS LDOUBLE) Return Value:
Parameters:
|
DIM RetDBL# DIM RetLDBL AS LDOUBLE RetDBL# = LOG(9000.0) PRINT RetDBL# RetLDBL = LOGL(9000.0) PRINT RetLDBL
9.10497985631836 9.104979856318356435
The following routine uses LOG to calculate the length of a number.
DIM Number# DIM LengthOfNumber# Number# = 1234567890 LengthOfNumber# = INT(LOG(Number#) / LOG(10)) + 1 PRINT LengthOfNumber#
10
EXP raises Euler's number, 2.718281828459, to a specified exponent. EXP is the inverse of the natural logarithmic LOG function.
Syntax:DBLNatExp = EXP(ExpNumber AS DOUBLE) Return Value:
Parameters:
|
DIM DBLExponent AS DOUBLE DIM DBLNatExp AS DOUBLE DBLExponent = 2.30258509299405 DBLNatExp = EXP(DBLExponent) PRINT DBLNatExp
10
LOG10 returns the DOUBLE common, base-10, logarithm of a number.
Syntax:ComLogNum = LOG10(TheNumber AS DOUBLE) Return Value:
Parameters:
|
DIM Number# DIM LengthOfNumber# Number# = 1234567890 LengthOfNumber# = INT(LOG10(Number#) / LOG10(10)) + 1 PRINT LengthOfNumber#
10
LOG10L returns the LDOUBLE common, base-10, logarithm of a number.
Syntax:ComLogLDBL = LOG10L(LDBLNumber AS LDOUBLE) Return Value:
Parameters:
|
DIM RetDBL# DIM RetLDBL AS LDOUBLE RetDBL# = LOG10(9000.0) PRINT RetDBL# RetLDBL = LOG10L(9000.0) PRINT RetLDBL
3.95424250943932 3.954242509439324875
SQR and SQRT return the square root DOUBLE value of a DOUBLE number.
Syntax 1:RetDBL = SQR(DBLNumber AS DOUBLE) Syntax 2:RetDBL = SQRT(DBLNumber AS DOUBLE) Return Value:
Parameters:
|
SQRL and SQRTL return the square root LDOUBLE value of an LDOUBLE number.
Syntax 1:RetLDBL = SQRL(LDBLNumber AS DOUBLE) Syntax 2:RetLDBL = SQRTL(LDBLNumber AS LDOUBLE) Return Value:
Parameters:
|
DIM RetDBL# DIM RetLDBL AS LDOUBLE RetDBL# = SQRT(3.14159265358979) PRINT RetDBL# RetLDBL = SQRTL(3.141592653589793239L) PRINT RetLDBL
1.77245385090552 1.772453850905516027
HYPOT returns, as a DOUBLE value, the length of the hypotenuse of a right angled triangle given the lengths, as DOUBLE numbers, of the adjacent sides.
Syntax:DBLHypot = HYPOT(DBLSideA AS DOUBLE, DBLSideB AS DOUBLE) Return Value:
Parameters: |
HYPOTL returns, as an LDOUBLE value, the length of the hypotenuse of a right angled triangle given the lengths, as LDOUBLE numbers, of the adjacent sides.
Syntax:LDBLHypot = HYPOTL(LDBLSideA AS LDOUBLE, LDBLSideB AS LDOUBLE) Return Value:
Parameters: |
DIM DBLSideA# DIM DBLSideB# DIM DBLHypot# DBLSideA# = 3.1 DBLSideB# = 4.1 DBLHypot# = HYPOT(DBLSideA#, DBLSideB#) PRINT DBLHypot# DIM LDBLSideA AS LDOUBLE DIM LDBLSideB AS LDOUBLE DIM LDBLHypot AS LDOUBLE LDBLSideA = 3.1 LDBLSideB = 4.1 LDBLHypot = HYPOTL(LDBLSideA, LDBLSideB) PRINT LDBLHypot
5.14003891035856 5.140038910358558525
POW returns, as a DOUBLE, the result of a DOUBLE value base raised to the power of a DOUBLE value exponent.
Syntax:DBLPowered = POW(DBLBase AS DOUBLE, DBLExponent AS DOUBLE) Return Value:
Parameters: |
DIM DBLPowered AS DOUBLE DIM DBLBase AS DOUBLE DIM DBLExponent AS DOUBLE DBLBase = 2 FOR INTEGER i = 2 TO 16 DBLExponent# = i DBLPowered# = POW(DBLBase#, DBLExponent#) PRINT DBLPowered# NEXT i
4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536
POWL returns, as an LDOUBLE value, the result of an LDOUBLE value base raised to the power of an LDOUBLE value exponent.
Syntax:LDBLPowered = POWL(LDBLBase AS LDOUBLE, LDBLExponent AS LDOUBLE) Return Value:
Parameters: |
DIM LDBLPowered AS LDOUBLE DIM LDBLBase AS LDOUBLE DIM LDBLExponent AS LDOUBLE LDBLBase = 2.1 FOR INTEGER i = 1.1 TO 16.1 STEP 1 LDBLExponent = i LDBLPowered = POWL(LDBLBase, LDBLExponent) PRINT LDBLPowered NEXT i
2.100000000000000089 4.410000000000000373 9.261000000000001175 19.44810000000000329 40.84101000000000864 85.76612100000002176 180.1088541000000533 378.2285936100001279 794.2800465810003022 1667.988097820100705 3502.775005422211629 7355.827511386644732 15447.23777391195459 32439.19932521510601 68122.3185829517255 143056.8690241986296
MOD returns, as a DOUBLE value, the remainder of a division operation.
👉 Unlike most other BASIC implementations of MOD, which return an INTEGER, BCX MOD returns a DOUBLE, including any remaining fraction. For a procedure which returns, as an INTEGER value, the remainder of a division operation, see the below IMOD function.
Syntax 1: As FunctionRemainder = MOD(Dividend AS DOUBLE, Divisor AS DOUBLE) Return Value:
Parameters:
Example 1:![]() DIM Remainder# DIM Dividend# DIM Divisor# Dividend# = 5.3 Divisor# = 2.0 Remainder# = MOD(Dividend#, Divisor#) PRINT Remainder# Result:1.3Syntax 2: As Operator Remainder = Dividend AS DOUBLE MOD Divisor AS DOUBLE Return Value:
Parameters:
Example 2:![]() DIM Remainder# DIM Dividend# DIM Divisor# Dividend# = 5.3 Divisor# = 2.0 Remainder# = Dividend# MOD Divisor# PRINT Remainder# Result:1.3 |
👉 In QuickBASIC, the MOD remainder operator uses integer division with rounding in calculations. Keep this in mind if you are porting some old QuickBASIC code that uses the MOD remainder operator.
The QuickBASIC MOD calculation
19.0 MOD 6.7
BCX equivalent result, can be had using the technique shown in this BCX example.
DIM AS INTEGER RetInt RetInt = QB_MOD(19.0, 6.7) PRINT RetInt FUNCTION QB_MOD (dividend AS DOUBLE, divisor AS DOUBLE) AS INTEGER '******************************************************** ' Replicates the QBasic modulus function algorithm '******************************************************** DIM AS INTEGER idividend, idivisor idividend = INT(ROUND(dividend, 0)) idivisor = INT(ROUND(divisor, 0)) FUNCTION = IMOD(idividend, idivisor) END FUNCTION
5
IMOD returns, as an INTEGER value, the remainder of a division operation.
Syntax:Remainder = IMOD(Dividend AS INTEGER, Divisor AS INTEGER) Return Value:
Parameters: |
DIM Remainder% DIM Dividend% DIM Divisor% Dividend% = 5 Divisor% = 2 Remainder% = IMOD(Dividend%, Divisor%) PRINT Remainder%
1
Functionally equivalent to the BCX IMOD function, the C language modulus operator % is accepted by BCX in BASIC expressions.
👉 When using the % modulus operator, a space must be to the left and right of of the % symbol.
DIM Remainder AS INTEGER DIM Dividend AS INTEGER DIM Divisor AS INTEGER Dividend = 5 Divisor = 2 Remainder = Dividend % Divisor PRINT Remainder
1