Sponsored Content
Top Forums Programming Very strange output with casting Post 303029297 by arunkumar_mca on Thursday 24th of January 2019 01:13:05 PM
Old 01-24-2019
Very strange output with casting

Hi All,

I am having a strange issue. Below is the code snippet. If I print
Code:
fraction * (double)::pow((double)10,scalingFactor)

which is a double I am getting 154 when I type cast that to
Code:
int

as
Code:
(int)( ((fraction) * ((double)::pow((double)10,scalingFactor))))

it is becoming 153. Not sure why casting get me different output. Also for another strange thing is if store the
Code:
fraction * (double)::pow((double)10,scalingFactor)

into a double and then type cast it returning me 154.

Code:
////////////////////////////////////////////////////////////////////////////////
std::string floatToString(double fvalue, int valueLength, int scalingFactor)
{
double i = 0;
double fraction = modf(fvalue, &i);
int intpart = (int)i;
double returnValue = fraction * (double)::pow((double)10,scalingFactor);

std::stringstream ss;
ss	<< std::setfill('0')
<< std::setw(valueLength-scalingFactor)
<< intpart;
ss	<< std::setfill('0')
<< std::setw(scalingFactor)
 << (int)( ((fraction) * ((double)::pow((double)10,scalingFactor))));


std::cout << " VALUE = " << fvalue << " | scalingFactor = " << scalingFactor 
<< " | fraction= " << fraction << " | ss.str() = " << ss.str() 
<< " | ::pow((double)10.0,scalingFactor) = "<< ::pow((double)10.0, scalingFactor) 
<<" | fraction * (double)::pow((double)10.0,scalingFactor) = "<< fraction * (double)::pow((double)10.0, scalingFactor) 
<<" | (int)(fraction * (double)::pow((double)10.0,scalingFactor)) = "<< (int)(fraction * (double)::pow((double)10.0, scalingFactor)) 
<< " | returnValue = "<< (int)returnValue 
<< " | TESTOUTPUT =" << (int)( ((fraction) * ((double)::pow((double)10,scalingFactor))))
<< std::endl;

return ss.str();
}

OUTPUT:

VALUE = 0.154 |
scalingFactor = 3 | 
fraction= 0.154 | 
ss.str() = 000153 | 
::pow((double)10.0,scalingFactor) = 1000 | 
fraction * (double)::pow((double)10.0,scalingFactor) = 154 |
(int)(fraction * (double)::pow((double)10.0,scalingFactor)) = 153 |
returnValue = 154 | TESTOUTPUT=153

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Strange output from grep

Hi, I am getting different output for grep depending which directory I am in. The following is a transcript of my session, I am using egrep but have also used grep -E. The directory names have been changed for security: $pwd /dir1/dir2/dir3/dir4 $echo 000000 |egrep -v $echo $? 1 $cd ..... (10 Replies)
Discussion started by: Bab00shka
10 Replies

2. Shell Programming and Scripting

strange output

I had a similar script in solaris and it had no problem. I wrote this one in freeBSD and it gave me strange output. Can anyone please tell me why? thanks a lot #!/bin/sh #This is a shell script that checks file system capacity mounted on /home directory #If file system is over 90% capacity,... (1 Reply)
Discussion started by: k2k
1 Replies

3. Solaris

Getting strange output of who -r command

Hi At OK> prompt, I have run the boot -s command After system is coming on to multiuser state, when I run the " who -r" command, I get the following message # who -r run-level Oct 17 03:48 last= Means I dont see "S" after run-level keyword. Could any one... (2 Replies)
Discussion started by: amity
2 Replies

4. Solaris

Strange sar output

I was reviewing yesterday's sar file and came across this strange output! What in the world? Any reason why there's output like that? SunOS unixbox 5.10 Generic_144488-07 sun4v sparc SUNW,T5240 Solaris 00:00:58 device %busy avque r+w/s blks/s avwait avserv 11:20:01 ... (4 Replies)
Discussion started by: dangral
4 Replies

5. Solaris

Strange df output on solaris 9

Hi all, After deleting some large log files on solaris 9 machine I can see strange df output shows below /dev/vx/dsk/rootvol 45G 16384E 50G 39879076698694% / I thought it will back to normal once I restart it but did not. I have seen in sunsolve article 6362734 that "Solaris 8... (0 Replies)
Discussion started by: rajashekar333
0 Replies

6. Shell Programming and Scripting

Tcl:Very strange output!!

Hi, I using tcl script to perform certain conditions. Part of the results should have average . I couldn't figure out what 's the cause as the result of the average is Zero. Example of the case???? #!/usr/bin/tclsh set counter 500 set total 1000 puts "Total num: $total \n" puts ... (3 Replies)
Discussion started by: ENG_MOHD
3 Replies

7. UNIX for Advanced & Expert Users

strange output with du

Can someone please explain why I get two outputs with the du command? The first one gave me one. I also didn't ask for the second directory so why did it give that directory? $ du -h "/media/Part 1/Desktop/playlist" 775M /media/Part 1/Desktop/playlist $ du -h "/media/Part... (1 Reply)
Discussion started by: cokedude
1 Replies

8. UNIX for Advanced & Expert Users

Strange /etc/passwd output

Can someone please explain this to me? auser:x:500:500:Anne User:/home/auser:/bin/sh buser:x:501:501:Bob User:/home/buser:/bin/bash I'm used to it looking like this. What is the difference between the first name and second name? In the first case I had to use the first name to change my... (3 Replies)
Discussion started by: cokedude
3 Replies

9. Shell Programming and Scripting

Strange output from find

How can I prevent find from outputting the directory name /home/xxxxxxxx/Backup/.system (which isn't even "other writable"? I am trying to search for files that are "world writable" on a shared web host using the find statement, and I want to prevent find from creating an error (because the of... (4 Replies)
Discussion started by: nixie
4 Replies

10. Shell Programming and Scripting

Echo's strange output

Hi, Kindly help me to understand the behavior or logic of the below shell command $ echo $!# echo $echo $ $ $ echo !$# echo $# 0 I am using GNU bash, version 3.2.25(1)-release (2 Replies)
Discussion started by: royalibrahim
2 Replies
Pango::Matrix(3pm)					User Contributed Perl Documentation					Pango::Matrix(3pm)

NAME
Pango::Matrix - A structure specifying a transformation between user-space coordinates and device coordinates HIERARCHY
Glib::Boxed +----Pango::Matrix METHODS
matrix = Pango::Matrix->new ($xx=1., $xy=0., $yx=0., $yy=1., $x0=0., $y0=0.) o $xx (double) o $xy (double) o $yx (double) o $yy (double) o $x0 (double) o $y0 (double) $matrix->concat ($new_matrix) o $new_matrix (Pango::Matrix) $matrix->rotate ($degrees) o $degrees (double) $matrix->scale ($scale_x, $scale_y) o $scale_x (double) o $scale_y (double) (dx, dy) = $matrix->transform_distance ($dx, $dy) o $dx (double) o $dy (double) Since: pango 1.16 array reference = $matrix->transform_pixel_rectangle ($rect) o $rect (array reference) Since: pango 1.16 (x, y) = $matrix->transform_point ($x, $y) o $x (double) o $y (double) Since: pango 1.16 array reference = $matrix->transform_rectangle ($rect) o $rect (array reference) Since: pango 1.16 $matrix->translate ($tx, $ty) o $tx (double) o $ty (double) double = $matrix->x0 ($new) o $new (double) double = $matrix->xx ($new=0) o $new (double) double = $matrix->xy ($new) o $new (double) double = $matrix->y0 ($new) o $new (double) double = $matrix->yx ($new) o $new (double) double = $matrix->yy ($new) o $new (double) SEE ALSO
Pango, Glib::Boxed COPYRIGHT
Copyright (C) 2003-2011 by the gtk2-perl team. This software is licensed under the LGPL. See Pango for a full notice. perl v5.14.2 2011-11-15 Pango::Matrix(3pm)
All times are GMT -4. The time now is 06:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy