Doubles are giving me problems
Posted on
16th Feb 2014 07:03 pm by
admin
Ok so, first of all i made a double = 0.05, but when running the debugger it shows up as 0.04999. I know this has something to do with how doubles store but its causing problems for me. Anyway, in the code I'm trying to get only the right hand side(rhs) of the double variable jdn's decimal point. So in the code example I'm only trying to get .05. But rhs isn't always going to be the same and can have up to 0.00005 <- that fifth one there(can't remember what its called - hundred thousandth?). I have constant numbers right now for the sake of testing this. Now the counter goes through starting at 0.1, to make sure everything after the decimal point is 0. It goes through fine until it gets to 0.0002 - 0.0001 and then rhs = 9.99998e-005.
1
2
3
Did you know?Explore Trending and Topic pages for more stories like this.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include
#include
#include
using namespace std;
int main()
{
double jdn = 2454115.05;
double lhs = floor(jdn);
double rhs = jdn - lhs;
double counter = 0.1;
if( rhs != 0.0 )
while( (rhs != 0.000001) || (counter != 0.00001) )
{
if( (rhs - counter) <= 0 )
{
counter *= 0.1;
//cout << "rhs = " << rhs << endl;
}
else
{
rhs -= counter;
cout << "rhs = " << rhs << endl;
}
}
cout << "ok" << endl;
return 0;
}
Results:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
rhs = 0.04
rhs = 0.03
rhs = 0.02
rhs = 0.01
rhs = 0.009
rhs = 0.008
rhs = 0.007
rhs = 0.006
rhs = 0.005
rhs = 0.004
rhs = 0.003
rhs = 0.002
rhs = 0.001
rhs = 0.0009
rhs = 0.0008
rhs = 0.0007
rhs = 0.0006
rhs = 0.0005
rhs = 0.0004
rhs = 0.0003
rhs = 0.0002
rhs = 9.99998e-005
No comments posted yet
Your Answer:
Login to answer
120
6
Other forums
Basic Forum Tutorial
Hi, I'm new to PHP. I want to build a basic forum for my site using PHP and MySQL. I've searched t
ob_ dynamic content
i was wondering about the potential to use ob to create a <div then remove it when the page
Accept only alpha characters
I've got this bit of code ready for accepting a phrase:
Code: if (!eregi ("", $_POS
Passing PHP variables from one page to another
Hello-
I'm having trouble figuring out how to transport a variable from one php file to anoth
Linking with Foreign Keys
I have been getting an erro when I try and link:
create table Faculty_Specialty (I_Name v
Dealing with code in db query
I am dealing with C code and I need to make sure it is encoded some how to ensure its integrity and
PHP5 - Verifying a secure mail is secure
I need to send an e-mail from a form to a external department and because it contains personal custo
Problem with umlauts and UTF-8
Hello every1,
I'm creating my own little CMS at the moment and got some problems with the cha
Stuck with preg_replace
Hi,
I'm trying to use preg_replace to remove part of the IP address submitted using a form on
Alternate messaging
I have 4 strings in MySQL db1
$string1 : Hello
$string2 : Hi
$string3 : Great
$strin