Sponsored Content
Operating Systems OS X (Apple) A fixed point basic calculator for DASH. Post 303027179 by Corona688 on Monday 10th of December 2018 12:39:51 PM
Old 12-10-2018
There was a bug in my version above. Arithmetic involving negative numbers worked, the edge case was the display of them. One 'edge' was that I completely forgot to display the sign, at all, ever. Still trying to fix the 0.073 problem.

Code:
DP=3
MOD=1000

function ftofix {       # ftofix OUTPUTNAME "3.14"
        _VAR="$1"
        _OLDIFS="$IFS"
        IFS="."
                set -- $2 # Set $1, $2, etc, splitting on "."
        IFS="$_OLDIFS"
        local FRAC=$2
        local _N=$1

        [[ "${_N}" =  "0" ]] && _N=""
        [[ "${_N}" = "-0" ]] && _N="-"

        for((X=0; X<DP; X++))
        do
                D="${FRAC:$X:1}"
                [[ -z "$D" ]] && D="0"
                _N="${_N}$D" # Prepend digits to N
        done
        read $_VAR <<EOF
${_N}
EOF

}

function fixtof {
        _VAR="$1"
        _N="$2"
        _SIGN=""
        ((_N<0)) && _SIGN="-" && ((_N=-_N))
        _S=`printf "%s%d.%0${DP}d" "${_SIGN}" $((_N/MOD)) $((_N%MOD))`
        read $_VAR <<EOF
$_S
EOF
}

AA="3.14159"
BB="-2.0"

ftofix A $AA
ftofix B $BB

# Multiplcation
fixtof CC $(((A*B)/MOD))
echo "$AA * $BB = $CC"

# Division
fixtof DD $(( (A*MOD)/B ))
echo "$AA / $BB = $DD"

# Addition and Subtraction
fixtof EE $(( B - A ))
echo "$BB - $AA = $EE"
fixtof FF $(( A - B ))
echo "$AA - $BB = $FF"
fixtof GG $(( A + B ))
echo "$AA + $BB = $GG"

Code:
3.14159 * -2.0 = -6.282
3.14159 / -2.0 = -1.570
-2.0 - 3.14159 = -5.141
3.14159 - -2.0 = 5.141
3.14159 + -2.0 = 1.141

 

7 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Fibre connection Point to Point SUN

Anyone know of a guide or instructions for Solaris I got to configure a SBUS HBA to talk to a tape robot. I have done this on a switch but not point to point. just going HBA >>>>> TAPE Fibre simple two nodes Kie (6 Replies)
Discussion started by: kie
6 Replies

2. UNIX for Dummies Questions & Answers

dash after ampersant

Hi! I'm new in these forums and more or less new with Unix. So... here is the question: does anyone know where is redirected the output of a command when you put >&- after it? Does it means any standard file descriptor? Thanks! (2 Replies)
Discussion started by: csecnarf
2 Replies

3. Shell Programming and Scripting

How to perform a hexdump using dd from start point to end point?

hi, I would like to ask or is it possible to dump a hex using dd from starting point to end point just like the "xxd -s 512 -l 512 <bin file>" I know the redirect hexdump -C but i can't figure it out the combination options of dd. Hope someone can share their knowledge.. Thanks in... (3 Replies)
Discussion started by: jao_madn
3 Replies

4. Post Here to Contact Site Administrators and Moderators

How to sum up data in fixed width file with decimal point?

HI Everyone, I have below source file AAA|NAME1|ADDRESS1|300.20 BBB|NAME2|ADDRESS2|400.31 CCC|NAME3|ADDRESS3|300.34 I have requirement where I need to sum up fourth field in above fixed width pipe delimited flat file. When I use below code, it gives me value 1001.00 But I am expecting... (1 Reply)
Discussion started by: patricjemmy6
1 Replies

5. Shell Programming and Scripting

Fixed mount point for a USB cardreader (Raspberry Pi, UDEV)

Hey all! :) I'm trying to create a fixed mount point for an usb cardreader. I've found a script on a raspberry pi forum which does the following: usb stick is plugged in -> script checks the mount point for data -> script starts copying the files automatically -> script unmounts the... (0 Replies)
Discussion started by: Eomer
0 Replies

6. UNIX for Beginners Questions & Answers

How to create a new mount point with 600GB and add 350 GBexisting mount point? IN AIX

How to create a new mount point with 600GB and add 350 GBexisting mount point Best if there step that i can follow or execute before i mount or add diskspace IN AIX Thanks (2 Replies)
Discussion started by: Thilagarajan
2 Replies

7. Shell Programming and Scripting

A dash to GOTO or a dash from GOTO, that is the question...

Well, guys I saw a question about GOTO for Python. So this gave me the inspiration to attempt a GOTO function for 'dash', (bash and ksh too). Machine: MBP OSX 10.14.3, default bash terminal, calling '#!/usr/local/bin/dash'... This is purely a fun project to see if it is possible in PURE... (3 Replies)
Discussion started by: wisecracker
3 Replies
NDSELECT(1)							   User Commands						       NDSELECT(1)

NAME
ndselect - select lines and fields for numdiff DESCRIPTION
Usage: ndselect -h|--help|-v|--version or ndselect [-b N][-e N][-s N][-F N][-L N][-I N][-S IFS][-x][-l PATH][-o PATH] [FILE] Print to standard output a subset of lines and fields from a given file. The argument after the options is the name of the file to read from. The complete path of the file should be given, a directory name is not accepted. If no input file is specified, the program reads from the standard input. Exit status: 0 in case of normal termination, -1 (255) in case of error -b, --beginning, --start=N Set to N the number of the first line to print (The default behavior is to start with line number 1) -e, --end=N Set to N the number of the last line that can be printed (The default behavior is to arrive till to the end of the file) -s, --step=N Set to N the increment to use when selecting the lines to print (The default value for the increment is 1) -F, --first-field=N Set to N the number of the first field to print (The default behavior is to start with field number 1) -L, --last-field=N Set to N the number of the last field that can be printed (The default behavior is to arrive till to the end of every line) -I, --increment=N Set to N the increment to use when selecting the fields to print (The default value for the increment is 1) -S, --separator=IFS Specify the set of characters to use to split the input lines into fields (The default set of characters is space, tab and newline). -x, --omit-empty-lines Do not print empty lines -l, --warnings-to=PATH Redirect warning and error messages from stderr to the indicated file -o, --output=PATH Redirect output from stdout to the indicated file -h, --help Show this help message -v, --version Show version number, Copyright, Distribution Terms and NO-Warranty COPYRIGHT
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Ivano Primi <ivprimi@libero.it> License GPLv3+: GNU GPL version 3 or later, see <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO
The full documentation for ndselect is maintained as a Texinfo manual. If the info and ndselect programs are properly installed at your site, the command info numdiff should give you access to the complete manual. ndselect 5.6.0 January 2012 NDSELECT(1)
All times are GMT -4. The time now is 01:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy