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
ftofix(3alleg4) 						  Allegro manual						   ftofix(3alleg4)

NAME
ftofix - Converts a floating point value to fixed point. Allegro game programming library. SYNOPSIS
#include <allegro.h> fixed ftofix(double x); DESCRIPTION
Converts a floating point value to fixed point. Unlike itofix(), this function clamps values which could overflow the type conversion, set- ting `errno' to ERANGE in the process if this happens. Example: fixed number; number = itofix(-40000); ASSERT(fixfloor(number) == -32768); number = itofix(64000); ASSERT(fixfloor(number) == 32767); ASSERT(!errno); /* This will fail. */ RETURN VALUE
Returns the value of the floating point value converted to fixed point clamping overflows (and setting `errno'). SEE ALSO
fixtof(3alleg4), itofix(3alleg4), fixtoi(3alleg4), exfixed(3alleg4), exrotscl(3alleg4), exspline(3alleg4), exupdate(3alleg4) Allegro version 4.4.2 ftofix(3alleg4)
All times are GMT -4. The time now is 04:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy