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
TRIG(3) 						User Contributed Perl Documentation						   TRIG(3)

NAME
PDL::GSLSF::TRIG - PDL interface to GSL Special Functions DESCRIPTION
This is an interface to the Special Function package present in the GNU Scientific Library. SYNOPSIS
Functions FUNCTIONS
gsl_sf_sin Signature: (double x(); double [o]y(); double [o]e()) Sin(x) with GSL semantics. gsl_sf_cos Signature: (double x(); double [o]y(); double [o]e()) Cos(x) with GSL semantics. gsl_sf_hypot Signature: (double x(); double xx(); double [o]y(); double [o]e()) Hypot(x,xx) with GSL semantics. gsl_sf_complex_sin Signature: (double zr(); double zi(); double [o]x(); double [o]y(); double [o]xe(); double [o]ye()) Sin(z) for complex z gsl_sf_complex_cos Signature: (double zr(); double zi(); double [o]x(); double [o]y(); double [o]xe(); double [o]ye()) Cos(z) for complex z gsl_sf_complex_logsin Signature: (double zr(); double zi(); double [o]x(); double [o]y(); double [o]xe(); double [o]ye()) Log(Sin(z)) for complex z gsl_sf_lnsinh Signature: (double x(); double [o]y(); double [o]e()) Log(Sinh(x)) with GSL semantics. gsl_sf_lncosh Signature: (double x(); double [o]y(); double [o]e()) Log(Cos(x)) with GSL semantics. gsl_sf_polar_to_rect Signature: (double r(); double t(); double [o]x(); double [o]y(); double [o]xe(); double [o]ye()) Convert polar to rectlinear coordinates. gsl_sf_rect_to_polar Signature: (double x(); double y(); double [o]r(); double [o]t(); double [o]re(); double [o]te()) Convert rectlinear to polar coordinates. return argument in range [-pi, pi]. gsl_sf_angle_restrict_symm Signature: (double [o]y()) Force an angle to lie in the range (-pi,pi]. gsl_sf_angle_restrict_pos Signature: (double [o]y()) Force an angle to lie in the range [0,2 pi). gsl_sf_sin_err Signature: (double x(); double dx(); double [o]y(); double [o]e()) Sin(x) for quantity with an associated error. gsl_sf_cos_err Signature: (double x(); double dx(); double [o]y(); double [o]e()) Cos(x) for quantity with an associated error. AUTHOR
This file copyright (C) 1999 Christian Pellegrin <chri@infis.univ.trieste.it> All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation under certain conditions. For details, see the file COPYING in the PDL distribution. If this file is separated from the PDL distribution, the copyright notice should be included in the file. The GSL SF modules were written by G. Jungman. perl v5.8.0 2003-01-29 TRIG(3)
All times are GMT -4. The time now is 01:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy