Sponsored Content
Operating Systems OS X (Apple) A fixed point basic calculator for DASH. Post 303025593 by wisecracker on Tuesday 6th of November 2018 02:03:46 PM
Old 11-06-2018
Quote:
Originally Posted by Corona688
Your use of printf "%f" is perhaps begging for trouble, that may convert to floating point and back. And even 64-bit floating point doesn't have the exactness of a 64-bit integer, some of those 64 bits get dedicated to mantissa et cetera.

dash gives +224466891.896745235 on my system, bash and ksh give +224466891.896745230, and zsh doesn't work at all, it gives "invalid floating point number" on printf "%s%.9f\n" "$MINUS" "$RESULT"
I wouldn't know where to start for floating point maths in pure 'dash' and I'll stick my neck out and say it cannot be done at all.

I don't use "%f" anywhere, I use "%.f" instead and 'shellcheck' shows no issues using 'dash' as the shell and changing it to 'sh' too.

I did quote that up 1,000,000.000000000, (1 Million), it is accurate to 9 decimal places and gets progressively worse to the upper/lower limits. Therefore IMO 8 places accuracy to at least 22 Million is acceptable for ordinary work

As for the code snippets I will try them out whilst working out multiply and divide; and I thought 'add' and 'subtract' were hard.
Doing it on the command line is not the same as working out the algorithms for limited language like 'dash'. All those 'bash'isms one takes for granted.

I have no idea why 'zsh' fails when the others work as per POSIX, I don't really intend to find out as dash is the important shell ATM...
(I have not got 'ash' so dunno if it works on that.)

EDIT:
Done manually...
Code:
Last login: Tue Nov  6 19:05:47 on ttys000
AMIGA:amiga~> cd Desktop/Code/Shell
AMIGA:amiga~/Desktop/Code/Shell> ./calc .000000277 - +.000000092
+0.000000185
AMIGA:amiga~/Desktop/Code/Shell> # Therefore SUM="000000185"
AMIGA:amiga~/Desktop/Code/Shell> FLOAT="000000185"
AMIGA:amiga~/Desktop/Code/Shell> INT=""
AMIGA:amiga~/Desktop/Code/Shell> NUMBER=$(( FLOAT/100 ))
-bash: 000000185: value too great for base (error token is "000000185")
AMIGA:amiga~/Desktop/Code/Shell> dash
AMIGA:\u\w> ./calc .000000277 - +.000000092
+0.000000185
AMIGA:\u\w> # Therefore SUM="000000185"
AMIGA:\u\w> FLOAT="000000185"
AMIGA:\u\w> INT=""
AMIGA:\u\w> NUMBER=$(( FLOAT/100 ))
dash: 6: Illegal number: 000000185
AMIGA:\u\w> exit
AMIGA:amiga~/Desktop/Code/Shell> _

Bazza...

Last edited by wisecracker; 11-06-2018 at 03:37 PM.. Reason: Manual reason for not using 'x%100'.
 

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
CW(7)							 Miscellaneous Information Manual						     CW(7)

NAME
CW - the international Morse code DESCRIPTION
CW is an abbreviation for "continuous wave", the commonly used technical term for Morse code communication. A basic knowledge or under- standing of Morse code is a requirement for Radio Amateurs and Marine Radio Operators in many parts of the world. MORSE CODE TIMINGS In Morse code, a dot or dash is referred to as an element. The basic timing unit is the dot period. This is the time taken to send a dot, not including any space before or after the dot. The lengths of all other elements are then derived from this basic unit, using the fol- lowing rules: The duration of a dash is three dots. The time between each element (dot or dash) is one dot length. The space between characters is three dot lengths. The space between words is seven dot lengths. The following formula calculates the dot period in microseconds from the Morse code speed in words per minute: dot period = ( 1200000 / speed ) This formula arises from the use of the word PARIS as a 'standard' word for calibrating Morse code speed. PARIS is 50 units long when sent in Morse code. Analysis of English plain-text indicates that the average word is 50 units, including spaces. MORSE CODE CHARACTERS The following list shows the IS0 8859-1 (Latin-1) characters that have commonly understood representations in Morse code: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"$()+-./:;=?_@ and space In addition, following ISO 8859-1 and ISO 8859-2 accented characters are also part of the generally accepted international Morse code: UACOEEANS (S with cedilla), (Z with caron/hacek), Finally, libcw adds the following ASCII characters as extensions to single character procedural signals: <>!&^~ MORSE CODE CHARACTER TABLES The following table shows the Morse code equivalents for the ISO 8859-1, accented ISO 8859-1, and accented ISO 8859-2 characters above. The ASCII portion of this table is taken from the ARRL Handbook, and the accented extensions from various other sources: Ch Code Ch Code Ch Code Ch Code ------------------------------------------------------- A .- B -... C -.-. D -.. E . F ..-. G --. H .... I .. J .--- K -.- L .-.. M -- N -. O --- P .--. Q --.- R .-. S ... T - U ..- V ...- W .-- X -..- Y -.-- Z --.. 0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. " .-..-. ' .----. $ ...-..- ( -.--. ) -.--.- + .-.-. , --..-- - -....- . .-.-.- / -..-. : ---... ; -.-.-. = -...- ? ..--.. _ ..--.- Ch Code Ch Code ------------------------------------------------- U ..-- A .-.- C -.-.. O ---. E ..-.. A .-..- A .--.- N --.-- S (S+cedilla) ---- (Z+caron/hacek) --..- In addition to the above standard characters, the following characters are conventionally used for punctuation and procedural signals as follows: Ch Code Ch Code Ch Code Ch Code ------------------------------------------------------- " .-..-. ' .----. $ ...-..- ( -.--. ) -.--.- + .-.-. , --..-- - -....- . .-.-.- / -..-. : ---... ; -.-.-. = -...- ? ..--.. _ ..--.- @ .--.-. and the following are non-conventional extensions implemented by libcw: Ch Code Ch Code Ch Code Ch Code ----------------------------------------------------- < ...-.- > -...-.- ! ...-. & .-... ^ -.-.- ~ .-.-.. An alternative view of punctuation and procedural signals is as combination Morse characters: Ch Prosig Ch Prosig Ch Prosig Ch Prosig --------------------------------------------------------- " [AF] ' [WG] $ [SX] ( [KN] ) [KK] + [AR] , [MIM] - [DU] . [AAA] / [DN] : [OS] ; [KR] = [BT] ? [IMI] _ [IQ] @ [AC] < [VA],[SK] > [BK] ! [SN] & [AS] ^ [KA] ~ [AL] NOTES
Despite the fact that this manual page constantly and consistently refers to Morse code elements as dots and dashes, DO NOT think in these terms when trying to learn Morse code. Always think of them as 'dit's and 'dah's. SEE ALSO
Man pages for libcw(3,LOCAL), cw(1,LOCAL), cwgen(1,LOCAL), cwcp(1,LOCAL), and xcwcp(1,LOCAL). CW Tutor Package CW(7)
All times are GMT -4. The time now is 04:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy