RE: [SDK]Double to long in c++ ?

Date : Thu, 7 Jun 2007 14:18:55 -0400
To : <XSI(at)Softimage.COM>
From : "Luc-Eric Rousseau" <lucer(at)Softimage.COM>
Subject : RE: [SDK]Double to long in c++ ?
no, spaces are not significant in c++.


From: owner-xsi(at)Softimage.COM [mailto:owner-xsi(at)Softimage.COM] On Behalf Of Mathieu Leclaire
Posted At: Thursday, June 07, 2007 1:49 PM
Posted To: xsi
Conversation: [SDK]Double to long in c++ ?
Subject: RE: [SDK]Double to long in c++ ?

Wow, my emails really don’t seam to pass through. I’ve been trying to send this reply since yesterday. Let me try one more time…

 

Here’s what I believe is happening:

 

You have a space between (long) and t. So I believe doing long id = (long) t * 3 * nbPoints; is the equivalent of doing long id = (long)(t * 3 * nbPoints); I think this way it converts the result of the entire equation so if t = 1.99, then you get something like 23.88 and then cast it to a long so it'll only keep the 23. But if you remove the space it’ll do the equivalent of long id = (long)(t) * 3 * nbPoints; but if you have 1.99 and cast it to a long, it'll only keep the value 1 which will screw up the result even more. So you can use round(t) and that'll convert a 1.5 to a 2 and a 1.49 to 1. 

 

But I still find it weird that when you log it, it only shows the value 2 even if the real value would be 1.99. But try those and let me know if it helps.

 

I think round is in Math.h so you might need to include that library.

 

 


Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.