Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Multiplication using bc in a for loop Post 302375913 by f_o_555 on Monday 30th of November 2009 08:56:46 AM
Old 11-30-2009
Quote:
Originally Posted by scottn
Hi.

"i" is a variable, so...

Code:
for (( i=1;i<=15;i++)); do
    x=$( printf "%s\n " "scale = 10; $i*5.0*335.0*3.0/1000.0" | bc)
    echo $x $i
done

(and notice the double quotes around the "scale =" string)
yes I had tried with $i but I got an error message

Code:
(standard_in) 1: illegal character: $

With the double qutes is fine, thank you!

---------- Post updated at 08:56 AM ---------- Previous update was at 06:04 AM ----------

Hi again,
I have some problems with 'bc'

Code:
for (( i=1;i<=15;i++)); do
     x=$( printf "%s\n " "scale = 10; $i*5.0*335.0*3.0/1000.0" | bc)
     y=$(/cygdrive/u/TOOLS/extract_v04d 1 yyy1 $i $i S 1 x x)
    dy=$( printf "%s\n " "scale = 10; $y * 0.05" | bc)
    echo $x $x $y $dy $z $dz >> fit.dat
done

in y I have a value that I read with another program from a file. The value of y is correct, but when I try to calculate the 5% of y I get a non sense.
e.g. the output is
Code:
 5.0250000000  5.0250000000 6.324E+08 6.7249 
10.0500000000 10.0500000000 1.304E+09 1.7549 
15.0750000000 15.0750000000 2.185E+09 2.6359 
20.1000000000 20.1000000000 3.248E+09 3.6989

I suppose the meaning of scale in bc is the scale to use to carry out the calculation(10 for decimal)

Does anybody know what am I doing wrong?
Thanks
 

10 More Discussions You Might Find Interesting

1. Linux

Multiplication with Fractions

Hello there, how do i multiply a fraction and a whole number? Example 20% of 50,000. I had gotten 0.2 using the following: chk=echo 20 100 | awk `{print $1/$2}` echo $chk $chk \* 50000 displays the error: non-numeric expression. (1 Reply)
Discussion started by: alby
1 Replies

2. Shell Programming and Scripting

using awk multiplication

Suppose i have a file A 1*2*3*4 2*4*4*22 and second file B 2*3*4*5 4*4*6*7 By multiplying file A by file B that is file A by first column in file B respectively output shud be 2*6*12*20 8*16*24*154 my code is =$1 next } {for (f=1;f<=NF;f++) (2 Replies)
Discussion started by: cdfd123
2 Replies

3. UNIX for Dummies Questions & Answers

Exact Multiplication

Hi, I am writing a script in Bourne shell #!/bin/sh used=`quota -v | tail -1 | awk '{print $2}'` total=`quota -v | tail -1 | awk '{print $3}'` echo "$used" echo "$total" perc=`expr ${used} / ${total} * 100 | bc` echo "$perc" I want to get a percentage of quota used to total limit I... (5 Replies)
Discussion started by: desai.rishabh
5 Replies

4. UNIX for Dummies Questions & Answers

nested loop:multiplication table

I need help to produce output as below 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 my script #!/bin/bash for (( i = 1; i <= 5; ++i )); do echo -n $i for (( j = 1; j <=5; ++j )); do multiply=$(( $i * $j )) done echo $multiply (1 Reply)
Discussion started by: killboy
1 Replies

5. Shell Programming and Scripting

Sed, numbers and multiplication

Hi there. I've used Sed to pull out some numbers, can it also be used to perform calculations on these numbers? For example I have a text file with a list of weights however some of them are presented like 24x18g, I actually need it to multiple the two number and display it as 432g ... (6 Replies)
Discussion started by: mrpugster
6 Replies

6. Programming

C multiplication with GCC

Hi all, newbie here. Does anyone know if it is possible to use GCC or Clang to multiply two unsigned numbers and have it use for intel instructions, the mull instruction or an imul. I can't figure how to word this to accomplish this task: (int)(((unsigned long long)result * (unsigned)2290649225)... (4 Replies)
Discussion started by: pheonix
4 Replies

7. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

8. UNIX for Dummies Questions & Answers

Multiplication of two matrices

Hi there! I have two files like below File1(with a header, ~1000 rows, ~50 columns) ID1 ID2 ID3 ID4 ID5 MI1_A MI1_H MI2_A MI2_H 0 1 0 0 0 1 0 2 1 0 2 0 0 0 2 1 0 1 File2 (without a header, ~50 rows) MI1 A 0.4 3.1 MI2 B -0.2 0.1 Output ID2 M1_A M2_A 1 1*0.4 2*-0.2 2 2*0.4 0*-0.2 ... (22 Replies)
Discussion started by: Akang
22 Replies

9. UNIX for Beginners Questions & Answers

Matrix multiplication

I have two files. Row id in File1 matches the column id in file2 (starting from column7 )except the last 2 characters. File1 has 50 rows and File 2 has 56 columns. If the id matches I want to multiply the value in column3 of File1 to the entire column in File2. and in the final output print only... (11 Replies)
Discussion started by: Akang
11 Replies

10. Homework & Coursework Questions

Multiplication Table in UNIX

How can I produce this kind of output? Enter a number: 3 MULTIPLICATION TABLE: 0 1 2 3 1 1 2 3 2 2 4 6 3 3 6 9 When you enter a number, it should show you the corresponding multiplication table. Plus we need to use for loops that I do not actually know. Thanks in advance! Here is my... (2 Replies)
Discussion started by: larkha
2 Replies
Devel::Refcount(3pm)					User Contributed Perl Documentation				      Devel::Refcount(3pm)

NAME
"Devel::Refcount" - obtain the REFCNT value of a referent SYNOPSIS
use Devel::Refcount qw( refcount ); my $anon = []; print "Anon ARRAY $anon has " . refcount($anon) . " reference "; my $otherref = $anon; print "Anon ARRAY $anon now has " . refcount($anon) . " references "; DESCRIPTION
This module provides a single function which obtains the reference count of the object being pointed to by the passed reference value. FUNCTIONS
$count = refcount($ref) Returns the reference count of the object being pointed to by $ref. COMPARISON WITH SvREFCNT This function differs from "Devel::Peek::SvREFCNT" in that SvREFCNT() gives the reference count of the SV object itself that it is passed, whereas refcount() gives the count of the object being pointed to. This allows it to give the count of any referent (i.e. ARRAY, HASH, CODE, GLOB and Regexp types) as well. Consider the following example program: use Devel::Peek qw( SvREFCNT ); use Devel::Refcount qw( refcount ); sub printcount { my $name = shift; printf "%30s has SvREFCNT=%d, refcount=%d ", $name, SvREFCNT($_[0]), refcount($_[0]); } my $var = []; printcount 'Initially, $var', $var; my $othervar = $var; printcount 'Before CODE ref, $var', $var; printcount '$othervar', $othervar; my $code = sub { undef $var }; printcount 'After CODE ref, $var', $var; printcount '$othervar', $othervar; This produces the output Initially, $var has SvREFCNT=1, refcount=1 Before CODE ref, $var has SvREFCNT=1, refcount=2 $othervar has SvREFCNT=1, refcount=2 After CODE ref, $var has SvREFCNT=2, refcount=2 $othervar has SvREFCNT=1, refcount=2 Here, we see that SvREFCNT() counts the number of references to the SV object passed in as the scalar value - the $var or $othervar respectively, whereas refcount() counts the number of reference values that point to the referent object - the anonymous ARRAY in this case. Before the CODE reference is constructed, both $var and $othervar have SvREFCNT() of 1, as they exist only in the current lexical pad. The anonymous ARRAY has a refcount() of 2, because both $var and $othervar store a reference to it. After the CODE reference is constructed, the $var variable now has an SvREFCNT() of 2, because it also appears in the lexical pad for the new anonymous CODE block. PURE-PERL FALLBACK An XS implementation of this function is provided, and is used by default. If the XS library cannot be loaded, a fallback implementation in pure perl using the "B" module is used instead. This will behave identically, but is much slower. Rate pp xs pp 225985/s -- -66% xs 669570/s 196% -- SEE ALSO
o Test::Refcount - assert reference counts on objects AUTHOR
Paul Evans <leonerd@leonerd.org.uk> perl v5.14.2 2011-11-15 Devel::Refcount(3pm)
All times are GMT -4. The time now is 04:16 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy