Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

StrMath

String number calculation in Free Pascal

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

StrMath for FreePascal

A FreePascal Unit for String Number Calculation and Accurate Results.

Extra

Extra-Math

  • function isNaNNumber (const num: Number): Boolean;
  • procedure Shift (isLeft, isSet: Boolean; var num: Number);
  • procedure Shift (isLeft: Boolean; var num: Number);
  • procedure ShiftPace (isLeft: Boolean; const PaceBaseOne: Integer; var num: Number);
  • procedure ShiftLeft (var num: Number);
  • procedure ShiftRight (var num: Number);
  • procedure ShiftPaceLeft (const PaceBaseOne: Integer; var num: Number);
  • procedure ShiftPaceRight (const PaceBaseOne: Integer; var num: Number);
  • function AssignNum (const num: Number): Number;

IntArr-Math

  • function ConditionInt (Num1: IntArr; Symbol: String; Num2: IntArr): Boolean;
  • function InRangeInt (var varNum: IntArr; fromNum, ToNum, PaceNum: IntArr): Boolean;
  • function InRangeInt (var varNum: IntArr; fromNum, ToNum: IntArr): Boolean;
  • function IntToBitStr (const num: IntArr): String;
  • function isIntZero (const num: IntArr): Boolean;
  • function isPositiveIntAdvance (const num: IntArr): Byte;
  • function isPositiveInt (const num: IntArr): Boolean;
  • procedure SetZeroInt (var num: IntArr);
  • function InitInt (const num: String): IntArr;
  • function IntStr (const num: IntArr): String;
  • function IntMod (const num1, num2: IntArr): IntArr;

RealArr-Math

  • function ConditionReal (Num1: RealArr; Symbol: String; Num2: RealArr): Boolean;
  • function InRangeReal (var varNum: RealArr; fromNum, ToNum, PaceNum: RealArr): Boolean;
  • function InRangeReal (var varNum: RealArr; fromNum, ToNum: RealArr): Boolean;
  • function RealToBitStr (const num: RealArr): String;
  • function IntReal (const num: IntArr): RealArr;
  • function RoundReal (const num: RealArr): IntArr;
  • function RoundRealR (const num: RealArr): IntArr;
  • function RealDeciCountBaseOne (const num: RealArr): Integer;
  • function CutRealDeciCountBaseOne (const num: RealArr; const CutAt: Integer): RealArr;
  • function CutRealDeciCountBaseOneR (const num: RealArr; const CutAt: Integer): RealArr;
  • function isPositiveRealAdvance (const num: RealArr): Byte;
  • function isPositiveReal (const num: RealArr): Boolean;
  • function InitReal (const num: String): RealArr;
  • function RealStr (const num: RealArr): String;
  • function RealMod (const num1, num2: RealArr): RealArr;

String-Math

  • function Condition (Num1, Symbol, Num2: String): Boolean;
  • function InRange (var varNum: String; fromNum, ToNum, PaceNum: String): Boolean;
  • function InRange (var varNum: String; fromNum, ToNum: String): Boolean;
  • function isNaN (const NumV: String): Boolean;
  • function CutDeciCount (const NumV: String; const DeciCountBaseOne: Integer): String;
  • function isNumber (const NumV: String): Boolean;
  • function isInt (const NumV: String): boolean;
  • function CleanNum (const NumV: String): String;
  • function ToRound (const NumV: String; const WithDeci: Boolean = True): String;
  • function ToRound (const NumV: String; out AAnswer: String; const WithDeci: Boolean = True): Boolean;
  • function ToInt (const NumV: String; const WithDeci: Boolean = True): String;
  • function ToInt (const NumV: String; out AAnswer: String; const WithDeci: Boolean = True): Boolean;
  • function ToDeci (const NumV: String; const WithDeci: Boolean = True): String;
  • function ToDeci (const NumV: String; out AAnswer:String; const WithDeci: Boolean = True): Boolean;
  • function isPositiveAdvance (const NumV: String): Byte;
  • function isPositive (const NumV: String): Boolean;
  • function Num1Bigger (const Num1, Num2: String): Byte;
  • function xMod (const num1, num2: String): String;

Basic Number Calcus

IntArr-Math

  • function SumSubInt (const num1, num2: IntArr): IntArr;
  • procedure SumSubInt (const num1, num2: IntArr; var AAnswer: IntArr);
  • function MulDivInt (const num1, num2: IntArr; const doMul: Boolean = True): IntArr;
  • procedure MulDivInt (const num1, num2: IntArr; var AAnswer: IntArr; const doMul: Boolean = True);

RealArr-Math

  • function SumSubRealO (const num1, num2: RealArr): RealArr;
  • procedure SumSubRealO (const num1, num2: RealArr; var AAnswer: RealArr);
  • function SumSubRealO (const num1, num2: RealArr; const DeciCountBaseOne: Integer): RealArr;
  • procedure SumSubRealO (const num1, num2: RealArr; var AAnswer: RealArr; const DeciCountBaseOne: Integer);
  • function MulDivRealO (const num1, num2: RealArr; const doMul: Boolean = True): RealArr;
  • procedure MulDivRealO (const num1, num2: RealArr; var AAnswer: RealArr; const doMul: Boolean = True);
  • function MulDivRealO (const num1, num2: RealArr; const DeciCountBaseOne: Integer; const doMul: Boolean = True): RealArr;
  • procedure MulDivRealO (const num1, num2: RealArr; var AAnswer: RealArr; const DeciCountBaseOne: Integer; const doMul: Boolean = True);
  • function SumSubReal (const num1, num2: RealArr): RealArr;
  • procedure SumSubReal (const num1, num2: RealArr; var AAnswer: RealArr);
  • function SumSubReal (const num1, num2: RealArr; const DeciCountBaseOne: Integer): RealArr;
  • procedure SumSubReal (const num1, num2: RealArr; var AAnswer: RealArr; const DeciCountBaseOne: Integer);
  • function MulDivReal (const num1, num2: RealArr; const doMul: Boolean = True): RealArr;
  • procedure MulDivReal (const num1, num2: RealArr; var AAnswer: RealArr; const doMul: Boolean = True);
  • function MulDivReal (const num1, num2: RealArr; const DeciCountBaseOne: nteger; const doMul: Boolean = True): RealArr;
  • procedure MulDivReal (const num1, num2: RealArr; var AAnswer: RealArr; const DeciCountBaseOne: Integer; const doMul: Boolean = True);

String-Math

  • function SumSub (const Num1, Num2: String): String;
  • function MulDiv (const Num1, Num2: String; const doMul: Boolean = True): String;
  • function SumSub (const Num1, Num2: String; out AAnswer: String): Boolean;
  • function MulDiv (const Num1, Num2: String; out AAnswer: String; const doMul: Boolean = True): Boolean;
  • function SumSub (const Num1, Num2: String; const DeciCountBaseOne: Integer): String;
  • function MulDiv (const Num1, Num2: String; const DeciCountBaseOne: Integer; const doMul: Boolean = True): String;
  • function SumSub (const Num1, Num2: String; out AAnswer: String; const DeciCountBaseOne: Integer): Boolean;
  • function MulDiv (const Num1, Num2: String; out AAnswer: String; const DeciCountBaseOne: Integer; const doMul: Boolean = True): Boolean;

Advance Number Calcus

IntArr-Math

  • function unNumInt (const num: IntArr): IntArr;
  • procedure unNumInt (const num: IntArr; var AAnswer: IntArr);
  • function xPowerInt (const Base, Power: IntArr): IntArr;
  • procedure xPowerInt (const Base, Power: IntArr; var AAnswer: IntArr);

RealArr-Math

  • function unNumReal (const num: RealArr): RealArr;
  • procedure unNumReal (const num: RealArr; var AAnswer: RealArr);
  • function lnReal (const num: RealArr): RealArr;
  • procedure lnReal (const num: RealArr; var AAnswer: RealArr);
  • function lnReal (const num: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure lnReal (const num: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function logReal (const num: RealArr): RealArr;
  • procedure logReal (const num: RealArr; var AAnswer: RealArr);
  • function logReal (const num: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure logReal (const num: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function logReal (const num, base: RealArr): RealArr;
  • procedure logReal (const num, base: RealArr; var AAnswer: RealArr);
  • function logReal (const num, base: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure logReal (const num, base: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function SqrRootReal (const num: RealArr): RealArr;
  • procedure SqrRootReal (const num: RealArr; var AAnswer: RealArr);
  • function SqrRootReal (const num: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure SqrRootReal (const num: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function SineReal (const Degrees: RealArr): RealArr;
  • procedure SineReal (const Degrees: RealArr; var AAnswer: RealArr);
  • function SineReal (const Degrees: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure SineReal (const Degrees: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function CosineReal (const Degrees: RealArr): RealArr;
  • procedure CosineReal (const Degrees: RealArr; var AAnswer: RealArr);
  • function CosineReal (const Degrees: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure CosineReal (const Degrees: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function TangentReal (const Degrees: RealArr): RealArr;
  • procedure TangentReal (const Degrees: RealArr; var AAnswer: RealArr);
  • function TangentReal (const Degrees: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure TangentReal (const Degrees: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function InSineReal (const SineX: RealArr): RealArr;
  • procedure InSineReal (const SineX: RealArr; var AAnswer: RealArr);
  • function InSineReal (const SineX: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure InSineReal (const SineX: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function InCosineReal (const CosineX: RealArr): RealArr;
  • procedure InCosineReal (const CosineX: RealArr; var AAnswer: RealArr);
  • function InCosineReal (const CosineX: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure InCosineReal (const CosineX: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function InTangentReal (const TangentX: RealArr): RealArr;
  • procedure InTangentReal (const TangentX: RealArr; var AAnswer: RealArr);
  • function InTangentReal (const TangentX: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure InTangentReal (const TangentX: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function ePowerReal (const Power: RealArr): RealArr;
  • procedure ePowerReal (const Power: RealArr; var AAnswer: RealArr);
  • function ePowerReal (const Power: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure ePowerReal (const Power: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);
  • function xPowerReal (const Base, Power: RealArr): RealArr;
  • procedure xPowerReal (const Base, Power: RealArr; var AAnswer: RealArr);
  • function xPowerReal (const Base, Power: RealArr; DeciCountBaseOne: Integer): RealArr;
  • procedure xPowerReal (const Base, Power: RealArr; var AAnswer: RealArr; DeciCountBaseOne: Integer);

String-Math

  • function unNum (const num: String): String;
  • function unNum (const num: String; var AAnswer: String): Boolean;
  • function ln (const x: String): String;
  • function ln (const x: String; out AAnswer: String): Boolean;
  • function ln (const x: String; DeciCountBaseOne: Integer): String;
  • function ln (const x: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function log (const num: String): String;
  • function log (const num: String; out AAnswer: String): Boolean;
  • function log (const num: String; DeciCountBaseOne: Integer): String;
  • function log (const num: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function log (const num, Base: String): String;
  • function log (const num, Base: String; out AAnswer: String): Boolean;
  • function log (const num, Base: String; DeciCountBaseOne: Integer): String;
  • function log (const num, Base: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function SqrRoot (const x: String): String;
  • function SqrRoot (const x: String; out AAnswer: String): Boolean;
  • function SqrRoot (const x: String; DeciCountBaseOne: Integer): String;
  • function SqrRoot (const x: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function Sine (const Degrees: String): String;
  • function Sine (const Degrees: String; out AAnswer: String): Boolean;
  • function Sine (const Degrees: String; DeciCountBaseOne: Integer): String;
  • function Sine (const Degrees: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function Cosine (const Degrees: String): String;
  • function Cosine (const Degrees: String; out AAnswer: String): Boolean;
  • function Cosine (const Degrees: String; DeciCountBaseOne: Integer): String;
  • function Cosine (const Degrees: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function Tangent (const Degrees: String): String;
  • function Tangent (const Degrees: String; out AAnswer: String): Boolean;
  • function Tangent (const Degrees: String; DeciCountBaseOne: Integer): String;
  • function Tangent (const Degrees: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function InSine (const SineX: String): String;
  • function InSine (const SineX: String; out AAnswer: String): Boolean;
  • function InSine (const SineX: String; DeciCountBaseOne: Integer): String;
  • function InSine (const SineX: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function InCosine (const CosineX: String): String;
  • function InCosine (const CosineX: String; out AAnswer: String): Boolean;
  • function InCosine (const CosineX: String; DeciCountBaseOne: Integer): String;
  • function InCosine (const CosineX: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function InTangent (const TangentX: String): String;
  • function InTangent (const TangentX: String; out AAnswer: String): Boolean;
  • function InTangent (const TangentX: String; DeciCountBaseOne: Integer): String;
  • function InTangent (const TangentX: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function ePower (const Power: String): String;
  • function ePower (const Power: String; out AAnswer: String): Boolean;
  • function ePower (const Power: String; DeciCountBaseOne: Integer): String;
  • function ePower (const Power: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;
  • function xPower (const Base, Power: String): String;
  • function xPower (const Base, Power: String; out AAnswer: String): Boolean;
  • function xPower (const Base, Power: String; DeciCountBaseOne: Integer): String;
  • function xPower (const Base, Power: String; out AAnswer: String; DeciCountBaseOne: Integer): Boolean;

Binary Calcus

  • function isBinary (const Num: String): Boolean;
  • function IntToBinary (const Num: String): String;
  • function IntToBinary (const Num: String; out AAnswer: String): Boolean;
  • function BinaryToInt (const Num: String): String;
  • function BinaryToInt (const Num: String; out AAnswer: String): Boolean;

Code-Example

pascal
procedure TForm1.Test;
var
  StrResult: String;
  Int1, Int2, Int3, Int4: IntArr;
  Real1, Real2, Real3, Real4: RealArr;
  Str1, Str2, Str3, Str4: String;
begin
  StrResult := '';

  Int1 := nil;
  Int2 := nil;
  Int3 := nil;
  Int4 := nil;

  Real1 := nil;
  Real2 := nil;
  Real3 := nil;
  Real4 := nil;

  Int1 := InitInt ('1');                           // Declaring Variable
  Int2 := InitInt ('1');                           // Declaring Variable
  Int4 := InitInt ('-1');                          // Declaring Variable
  Int3 := SumSubInt (Int1, Int2);                  // (Int1 + Int2) = Int3
  Int3 := SumSubInt (Int1, Int4);                  // (Int1 - Int4) = Int3
  Int3 := MulDivInt (Int1, Int2);                  // (Int1 * Int2) = Int3
  Int3 := MulDivInt (Int1, Int2, False);           // (Int1 / Int2) = Int3
  StrResult := IntStr (Int3);                      // Int3 to String

  Real1 := InitReal ('1.0');                       // Declaring Variable
  Real2 := InitReal ('1.0');                       // Declaring Variable
  Real4 := InitReal ('-1.0');                      // Declaring Variable
  Real3 := SumSubReal (Real1, Real2);              // (Real1 + Real2) = Real3
  Real3 := SumSubReal (Real1, Real4);              // (Real1 - Real4) = Real3
  Real3 := MulDivReal (Real1, Real2);              // (Real1 * Real2) = Real3
  Real3 := MulDivReal (Real1, Real2, False);       // (Real1 / Real2) = Real3
  StrResult := RealStr (Real3);                    // Real3 to String

  Str1 := '1.0';                                   // Declaring Variable
  Str2 := '1.0';                                   // Declaring Variable
  Str4 := '-1.0';                                  // Declaring Variable
  Str3 := SumSub (Str1, Str2);                     // (Str1 + Str2) = Str3
  Str3 := SumSub (Str1, Str4);                     // (Str1 - Str4) = Str3
  Str3 := MulDiv (Str1, Str2);                     // (Str1 * Str2) = Str3
  Str3 := MulDiv (Str1, Str2, False);              // (Str1 / Str2) = Str3
end;