Software Venture Consulting

FileMaker Pro downloads & Resources
FileMaker Custom Functions
FileMaker Web Viewer Examples
FileMaker Pro & Lasso Consulting
Training
FileMaker Books
FileMaker Articles
FileMaker Error Reference

Free Web Tools
Free FileMaker Tools

Personal Pages
Videos
Adventures
Links

Shopping Cart
Shopping Cart

Search:

Free Newsletter
Signup


Contact


Privacy Policy



FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.

 

 FileMaker Pro Custom Functions

List  |  Show Random  |  Upload  |  Add This to Your Site

EngNotation ( number; digits )

Rate this function:  

RatingRatingRatingRatingRating
  Average rating: 4.3  (27 votes)
  Discuss this Custom Function

Paul Smith, unafilliated
http://facebook.com/psmithw

Express a number in engineering notation

Sample Input:
EngNotation ( -.0000400001195 ; 8 )
Sample Output:
-40.000120 μ


 Then copy & paste into FileMaker Advanced's Edit Custom Function window.

Click here to copy To Clip Manager if you have myFMbutler's Clip Manager installed

Description:

Uses standard engineering symbols from fempto to peta and "e" notation for values outside those limits.

Expresses all values in powers of 10^3, so ".4" would be "400 m". rounds to the number of digits passes to the function.

Non-recursive due to the use of the logarithm function.

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

This is my Custom Function and I want to edit it

Discuss:

Couldn't this be simpler? Compare: http://www.briandunning.com/cf/220

comment, VR
February 21, 2015 7:37am

/* Edit: some bug fixes for number rounding and refactored code for readability */
/*
EngNotation ( number; digits )
EngNotation ( -.0000400001195 ; 8 ) >>> -40.000120 μ
Uses standard engineering symbols from fempto to peta and "e" notation for values outside those limits.
Non-recursive due to the use of the logarithm function.
*/

Let (
[ numAbs = Abs ( number )
; numSign = If ( number < 0 ; "-" ; "" )
; digitsPower = If ( numAbs ; Floor ( Log ( numAbs ) ) ; 0 )
; digits10e3s = Div ( digitsPower ; 3 )
; digits10e1s = digits10e3s * 3

; roundPlaces = ( digits + digits10e1s ) - ( digitsPower + 1 )
; precisePlaces = 3 + digits - digitsPower
; numTerm = Round ( SetPrecision ( numAbs / ( 10 ^ digits10e1s ) ; preciseplaces ) ; roundplaces )

; zerosAdd = digits + GetAsBoolean ( PatternCount ( numTerm ; "." ) ) - Length ( numTerm )
; zerosExtra = Right ( SerialIncrement ( "0" ; SetPrecision ( 10 ^ ( zerosAdd ) ; zerosAdd + 1 ) ) ; zerosAdd )
; outTerm = numTerm & If ( zerosAdd > 0 ; If ( not GetAsBoolean ( PatternCount ( numTerm ; "." ) ) ; "." ) & zerosExtra )


; ePower = "e" & If ( Abs ( digits10e1s ) = digits10e1s ; "+" ) & ( digits10e1s )
; eSymbol = GetValue ( If ( digits10e3s < 0 ; " m¶ μ¶ n¶ p¶ f" ; " K¶ M¶ G¶ T¶ P" ) ; Abs ( digits10e3s ) )
; outSymbol = If ( Abs ( digits10e3s ) > 5 ; ePower & " " ; eSymbol )
] ;
If ( IsValidExpression ( numSign & outTerm & ePower ) ; numSign & outTerm & outSymbol ; "?" )
)

Paul Smith, NC
February 24, 2015 7:38pm

Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:

Your Name:
City/Location:
Comment:
characters left. If you paste in more than 1500 characters, it will be truncated. Discuss the function - advertisements and other useless posts will be deleted.
Answer 9 + 2 =
Search for Custom Functions:

Custom Functions Widget
Download the Custom Function Dashboard Widget for OS X
Keep all the latest Custom Functions right at your fingertips!

Newest Custom Functions:

1. decFromHex ( hexValue )
  (Mon, Oct 16, 12:34pm)
2. MonthYearList ( startmonth ; startyear ; numbermonth ; short )
  (Mon, Oct 16, 3:38am)
3. ErrorDescription ( errorNumber )
  (Wed, Sep 27, 2:51am)
4. decodeEntities (text)
  (Wed, Sep 27, 1:22am)
5. HexidecimalToNumber ( HexidecimalValue ; counter )
  (Mon, Sep 25, 12:39pm)
6. FixedFieldConverter ( Fieldname ; f1 ; f2 ; f3 ; f4 ; f5 ; f6 ; f7 ; f8 ; f9 ; f10 ; f11 ; f12 ; f13 ; f14 ; f15 ; f16 ; f17 ; f18 ; f1
  (Fri, Sep 15, 12:34pm)
7. ShannonEntropy ( text )
  (Thu, Sep 07, 5:59am)
8. LetterCount ( text ; summary )
  (Thu, Sep 07, 5:53am)

RSS Feed of Custom Functions