Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Convert floating to integer in ksh Post 303046056 by wisecracker on Wednesday 22nd of April 2020 12:57:56 PM
Old 04-22-2020
Hi MadeInGermany...
The problem is it rounds both down and up; and int() function rounds down only...
Code:
Last login: Wed Apr 22 17:51:50 on ttys000
AMIGA:amiga~> 
AMIGA:amiga~> dash
AMIGA:\u\w> 
AMIGA:\u\w> printf "%.f\n" 123.456  
123
AMIGA:\u\w> printf "%.f\n" 123.654
124
AMIGA:\u\w> 
AMIGA:\u\w> exit
AMIGA:amiga~> python3.8
Python 3.8.0rc1 (v3.8.0rc1:34214de6ab, Oct  1 2019, 12:56:49) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> int(123.456)
123
>>> int(123.654)
123
>>> exit()
AMIGA:amiga~> _

EDIT:
Apologies; ignore, I misread the OP's requirements...

Last edited by wisecracker; 04-22-2020 at 02:01 PM.. Reason: see EDIT:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

convert from an integer to a string

i want to convert from an integer to a string..in unix...i am writing a C program with embedded SQL... I remeber using itoa...but for some reason it doesnt work......i cant find it in the manual..... Maybe that is the wrong command..... but i have checked Dev Studio.....and it doest exist in the... (6 Replies)
Discussion started by: mojomonkeyhelper
6 Replies

2. Shell Programming and Scripting

Replace floating-point by integer in awk

Hi, I am trying to write a script to extract multiple sets of data from a chemistry output file. The problem section is in the following format... Geometry "geometry" -> "geometry" 1 Pd 46.0000 -0.19290971 0.00535260 0.02297606 2 P ... (7 Replies)
Discussion started by: smadonald1
7 Replies

3. UNIX for Dummies Questions & Answers

Check if input is an integer or a floating point?

Hiii I actually intent to check the integer or floating point number input by user i.e. 23, 100, 55.25, 12.50 ..etc. However, when someone input strings or alpha character, my program has to show invalid input.!! Is there any Unix shell script syntax can help me to check ? Thanking you (2 Replies)
Discussion started by: krishnampkkm
2 Replies

4. Shell Programming and Scripting

Floating point to integer in variable length lines

Hi ! I'm looking for a way to transform certain floating point numbers in a one-line, variable length file to integers. I can do this in a crude way with sed : sed -e 's/0\.\(\):/\1:/g' -e 's/0\.0\(\):/\1:/g' -e 's/1\.000:/100:/g' myfile ... but this doesn't handle the rounding correctly. ... (3 Replies)
Discussion started by: jossojjos
3 Replies

5. Shell Programming and Scripting

Increment a floating number in ksh

Hi ! How to increment a varibale in ksh. #!/bin/ksh set -x RELEASE_NUM=5.2.103 VAL=0.0.1 RELEASE_NUM=`echo $RELEASE_NUM + $VAL | bc` echo $RELEASE_NUM The above code is throwing this error. + RELEASE_NUM=5.2.103 (2 Replies)
Discussion started by: dashok.83
2 Replies

6. Shell Programming and Scripting

Convert to Integer

Hi fellows!! i'm doing something which is not working out for me properly which i don't understand why nowdate=`date +%s` echo $nowdate now the problem how to convert a date which is stored in a variable mydate="22/Oct/2011" mydate=`date -d '$mydate' +%s` it gives error... (11 Replies)
Discussion started by: me_newbie
11 Replies

7. Shell Programming and Scripting

How to compare floating variables , integer value expected?

I am running some commands and I am trying to get an output into a variable. I am having problem when I try to put that value in while loop, it says integer value expected. What's the best way to accomplish this remaining=$(symclone -sid XXX -f Clone_test query | grep MB | awk '{print... (1 Reply)
Discussion started by: rajsan
1 Replies

8. Shell Programming and Scripting

[Solved] need to convert decimal to integer

Using below command awk 'NR==FNR{A=$1;next} {sum+=($2*A)}END{OFMT="%20f";print int(sum)}' Market.txt Product.txt answer:351770174.00000 how to convert this to 351770174. when i try with below command i am getting different result. awk 'NR==FNR{A=$1;next}... (3 Replies)
Discussion started by: katakamvivek
3 Replies

9. Shell Programming and Scripting

Changing integer columns to floating decimal columns

I have a document that has 7 columns. eg. $1 $2 $3 $4 $5 $6 $7 string string string string integer integer integer The 6th and 7th columns are a mix of integers and floating decimals (with 4 decimal places). I need to convert the last 2 columns so that all... (3 Replies)
Discussion started by: kadm
3 Replies

10. Shell Programming and Scripting

Convert floating point to a number

Hello Guys, I have a floating point number 1.14475E+15 I want to convert this number in to full number (Integer or Big integer). I tried couple of functions it did not work. When I use INT=${FLOAT/.*} I am getting value as 1. I don't want a truncated value #!/bin/bash #... (9 Replies)
Discussion started by: skatpally
9 Replies
strfmon(3C)															       strfmon(3C)

NAME
strfmon - convert monetary value to string SYNOPSIS
Remarks The ANSI C "" construct denotes a variable length argument list whose optional [or required] members are given in the associated comment DESCRIPTION
The function places characters into the array pointed to by s as controlled by the string pointed to by format. No more than maxsize bytes are placed into the array. The format is a character string that contains two types of objects: plain characters, which are simply copied to the output, and conver- sion specifications, each of which results in the fetching of zero or more arguments that are converted and formatted. The arguments are of type see the section for details. The results are undefined if there are insufficient arguments for the format. If the format is exhausted while arguments remain, the excess arguments are ignored. A conversion specification is the string flag]...[field_width][right_precision] conversion_character Each element of the sequence is specified as follows: Flags One or more of the following optional flags can be specified to control the conversion: An (equal sign) followed by a single character f which is used as the numeric fill character. The fill character must be repre- sentable in a single byte in order to work with precision and width counts. The default numeric fill character is the space character. This flag does not affect field width filling which always uses the space character. This flag is ignored unless a left precision (see below) is specified. Do not format the currency amount with grouping characters. The default is to insert the grouping characters if defined for the current locale. Specify the style for representing positive and negative currency amounts. Only one of or (plus sign or left parenthesis) may be specified. If is specified, the locale's equivalent of + and - are used (for example, in the locale: an empty string if positive and - if negative). If is specified, negative amounts are enclosed within parentheses. If neither flag is specified, the style is used. Suppress the currency symbol from the output conversion. A minus sign specifying the alignment. If this flag is present all fields are left-justified (padded to the right) rather than right-justified. Field Width w A decimal digit string w specifying a minimum field width in bytes in which the result of the conversion is right-justified (or left-justified if the flag - is specified). The default is zero. Left Precision A followed by a decimal digit string n specifying a maximum number of digits expected to be formatted to the left of the radix character. This option can be used to keep the formatted output from multiple calls to the aligned in the same columns. It can also be used to fill unused positions with a special character as in $***123.45. This option causes an amount to be formatted as if it has the number of digits specified by n. If more than n digit positions are required, this conversion specification is ignored. Digit positions in excess of those actually required are filled with numeric fill character (see the flag above). If grouping has not been suppressed with the flag, and it is defined for the current locale, grouping separators are inserted before the fill characters (if any) are added. Grouping separators are not applied to fill characters even if the fill character is a digit. To ensure alignment, any characters appearing before or after the number in the formatted output such as currency or sign symbols are padded as necessary with space characters to make their positive and negative formats an equal length. Right Precision A period followed by a decimal digit string p specifying the number of digits after the radix character If the value of the right precision p is zero, no radix character appears If a right precision is not included, a default specified by the current locale is used The amount being formatted is rounded to the specified number of digits prior to formatting. Conversion Characters The conversion characters and their meanings are: The argument is formatted according to the locale's international currency format (for example, in the locale: The argument is formatted according to the locale's national currency format (for example, in the locale: Convert to a no argument is converted. The entire conversion specification must be %%. Notes The behavior of the function in a UNIX 2003 conforming application differs from its behavior in a non-conforming application. With the conversion character the function uses the fourth character of the string defined in of the current locale instead of a space as a separa- tor for separating different items in a monetary quantity as dictated by the values of and Only the first three characters will be taken as the currency symbol. As a result, the formatting of internationally formatted monetary quantities may change. EXTERNAL INFLUENCES
Locale The category of the program's locale affects the behavior of this function including the monetary radix character (which may be different from the numeric radix character affected by the category), the grouping separator, the currency symbols and formats. RETURN VALUE
If the total number of resulting bytes including the terminating null byte is not more than maxsize, the function returns the number of bytes placed into the array pointed to by s, not including the terminating null byte Otherwise, -1 is returned, the contents of the array are indeterminate, and errno is set to indicate the error. ERRORS
The function will fail if: Conversion stopped due to lack of space in the buffer. EXAMPLES
The following program segment formats the monetary value using the locale with a left precision of and as the fill character. char string[31]; double amt = -4321.123; setlocale(LC_MONETARY, "en_US.roman8"); strfmon(string, 31, "The amount is %=*#5n.", amt); The string array will contain: The amount is -$*4,321.12. As an other example, given the locale of and the values and --------------------------------------------------------------------------- Conversion Output Comments Specification --------------------------------------------------------------------------- %n $123.45 default formatting -$123.45 $3,456.78 --------------------------------------------------------------------------- %11n $123.45 right align within an 11 character field -$123.45 $3,456.78 --------------------------------------------------------------------------- %#5n $ 123.45 align columns for values up to 99,999 -$ 123.45 $ 3,456.78 --------------------------------------------------------------------------- %=*#5n $***123.45 specify a fill character -$***123.45 $*3,456.78 --------------------------------------------------------------------------- %=0#5n $000123.45 fill characters do not use grouping -$000123.45 even if the fill character is a digit $03,456.78 --------------------------------------------------------------------------- %^#5n $ 123.45 disable the grouping separator -$ 123.45 $ 3456.78 --------------------------------------------------------------------------- %^#5.0n $ 123 round off to whole units -$ 123 $ 3457 --------------------------------------------------------------------------- %^#5.4n $ 123.4500 increase the precision -$ 123.4500 $ 3456.7810 --------------------------------------------------------------------------- %(#5n $ 123.45 use an alternative positive/negative style ($ 123.45) $ 3,456.78 --------------------------------------------------------------------------- %!(#5n 123.45 disable the currency symbol ( 123.45) 3,456.78 --------------------------------------------------------------------------- AUTHOR
was developed by HP. SEE ALSO
localeconv(3C), thread_safety(5). STANDARDS CONFORMANCE
strfmon(3C)
All times are GMT -4. The time now is 11:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy