[dba-VS] C#, mantissa, math fun

Jim Lawrence accessd at shaw.ca
Mon Oct 16 12:11:45 CDT 2017


Hi Gustav:

I have always been really anal when it comes to programming as I have been bit so many times...it now a habit.

So what projects are you now working on?

Jim 

----- Original Message -----
From: "Gustav Brock" <gustav at cactus.dk>
To: "Development in Visual Studio" databaseadvisors.com>
Sent: Monday, October 16, 2017 10:08:03 AM
Subject: Re: [dba-VS] C#, mantissa, math fun

Hi Jim

I'm lazy, so the default value of variable Result - a zero length string - is returned if the passed parameter fails the IsNumeric check or if variable Fraction is zero.

/gustav
________________________________________
Fra: dba-VS databaseadvisors.com> på vegne af Jim Lawrence <accessd at shaw.ca>
Sendt: 16. oktober 2017 18:43
Til: Development in Visual Studio
Emne: Re: [dba-VS] [dba-VB] C#, mantissa, math fun

Hi Gustav:

Thanks for the update. I have a question about the return parameters. As it is possible to send any value to this function, how are values like strings or an empty value managed? Should the variable "Result" be initialized to a zero or have some other default value?

Jim

----- Original Message -----
From: "Gustav Brock" <gustav at cactus.dk>
To: "Development in Visual Studio" databaseadvisors.com>, "Access Developers discussion and problem solving" <accessd at databaseadvisors.com>
Sent: Monday, October 16, 2017 3:33:49 AM
Subject: Re: [dba-VS] [dba-VB] C#, mantissa, math fun

Hi all

Oops, the parameter should be a Variant to take a Decimal value which can hold op to 28 decimals:


' Returns the mantissa of a decimal number as
' a string to preserve leading zeroes.
'
' Maximum returned length of mantissa is:
'   Single:      8
'   Double:     16
'   Currency:    4
'   Decimal:    28
'
' Examples:
'   Mantissa(1234.56789)    -> "56789"
'   Mantissa(-1234.56789)   -> "56789"
'   Mantissa(1234.056789)   -> "056789"
'   Mantissa(-1234.056789)  -> "056789"
'   Mantissa(123456789)     -> ""
'   Mantissa(CDec("-0.0123456789012345678901234567"))   -> "0123456789012345678901234567"
'   Mantissa(CDbl("-0.0123456789012345678901234567"))   -> "0123456789012346"
'
' 2017-10-16. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function Mantissa( _
    ByVal Number As Variant) _
    As String

    Dim Result      As String
    Dim Fraction    As Variant

    If IsNumeric(Number) Then
        ' Convert to Decimal to prevent scientific notation of doubles and singles.
        Fraction = CDec(Number) - Fix(CDec(Number))
        If Fraction <> 0 Then
            Result = Mid(Str(Abs(Fraction)), 3)
        End If
    End If

    Mantissa = Result

End Function


/gustav

-----Oprindelig meddelelse-----
Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] På vegne af Gustav Brock
Sendt: 15. oktober 2017 17:54
Til: Development in Visual Studio databaseadvisors.com>; Access Developers discussion and problem solving <accessd at databaseadvisors.com>
Emne: Re: [dba-VS] [dba-VB] C#, mantissa, math fun

Hi all

I posted a method for this in C#.
Finding the mantissa in VBA it could be like:


' Returns the mantissa of a decimal number as ' a string to preserve leading zeroes.
'
' Examples:
'   Mantissa(1234.56789)    -> "56789"
'   Mantissa(-1234.56789)   -> "56789"
'   Mantissa(1234.056789)   -> "056789"
'   Mantissa(-1234.056789)  -> "056789"
'   Mantissa(123456789)     -> ""
'
' 2017-10-15. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function Mantissa( _
    ByVal Number As Double) _
    As String

    Dim Result      As String
    Dim Fraction    As Variant

    Fraction = CDec(Number) - CDec(Fix(Number))

    If Fraction <> 0 Then
        Result = Mid(Str(Abs(Fraction)), 3)
    End If

    Mantissa = Result

End Function


/gustav
_______________________________________________
dba-VS mailing list
dba-VS at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vs
http://www.databaseadvisors.com



More information about the dba-VS mailing list