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

Gustav Brock gustav at cactus.dk
Mon Oct 16 05:33:49 CDT 2017

```Hi all

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

<code>
' 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
</code>

/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 <dba-vs at 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:

<code>
' 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
</code>

/gustav

_______________________________________________
dba-VS mailing list