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.4  (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.

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 3 + 3 =
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. HexUUIDToNum_cf (_uuid)
  (Sat, Jun 16, 1:55pm)
2. httpResponseCode ( responseHeaders )
  (Tue, Jun 12, 10:40pm)
3. FindDuplicateCharacters ( string )
  (Fri, Jun 08, 5:01pm)
4. FieldRepetitionLast ( field ; maxRepetition )
  (Wed, Jun 06, 6:05pm)
5. CountModifiedRecords ( NameTimestampField ; StartTimestamp ; EndTimestamp )
  (Mon, May 28, 8:23am)
6. JSONArrayLength ( JSONArrayStr )
  (Fri, May 25, 7:46am)
7. interpolation (y1; y2; y3; x1; x2; x3; x1y1; x2y1; x1y2; x2y2; rnd)
  (Sat, May 19, 3:55am)
8. @JSONFormatElements ( json )
  (Tue, May 15, 3:31am)

RSS Feed of Custom Functions