Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > String manipulations

Reply
Thread Tools

String manipulations

 
 
Lorn
Guest
Posts: n/a
 
      05-28-2005
I'm trying to work on a dataset that has it's primary numbers saved as
floats in string format. I'd like to work with them as integers with an
implied decimal to the hundredth. The problem is that the current
precision is variable. For instance, some numbers have 4 decimal places
while others have 2, etc. (10.7435 vs 1074.35)... all numbers are of
fixed length.

I have some ideas of how to do this, but I'm wondering if there's a
better way. My current way is to brute force search where the decimal
is by slicing and then cutoff the extraneous numbers, however, it would
be nice to stay away from a bunch of if then's.

Does anyone have any ideas on how to do this more efficiently?

Many Thanks,
Lorn

 
Reply With Quote
 
 
 
 
Philippe C. Martin
Guest
Posts: n/a
 
      05-28-2005
Multiply them by 10000 ?

Lorn wrote:

> I'm trying to work on a dataset that has it's primary numbers saved as
> floats in string format. I'd like to work with them as integers with an
> implied decimal to the hundredth. The problem is that the current
> precision is variable. For instance, some numbers have 4 decimal places
> while others have 2, etc. (10.7435 vs 1074.35)... all numbers are of
> fixed length.
>
> I have some ideas of how to do this, but I'm wondering if there's a
> better way. My current way is to brute force search where the decimal
> is by slicing and then cutoff the extraneous numbers, however, it would
> be nice to stay away from a bunch of if then's.
>
> Does anyone have any ideas on how to do this more efficiently?
>
> Many Thanks,
> Lorn


 
Reply With Quote
 
 
 
 
Lorn
Guest
Posts: n/a
 
      05-28-2005
Yes, that would get rid of the decimals... but it wouldn't get rid of
the extraneous precision. Unfortunately, the precision out to the ten
thousandth is noise... I don't need to round it either as the numbers
are artifacts of an integer to float conversion. Basically, I need to
know how many decimal places there are and then make the necessary
deletions before I can normalize by adding zeros, multiplying, etc.

Thanks for your suggestion, though.

 
Reply With Quote
 
John Roth
Guest
Posts: n/a
 
      05-28-2005
"Lorn" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) oups.com...
> I'm trying to work on a dataset that has its primary numbers saved as
> floats in string format. I'd like to work with them as integers with an
> implied decimal to the hundredth. The problem is that the current
> precision is variable. For instance, some numbers have 4 decimal places
> while others have 2, etc. (10.7435 vs 1074.35)... all numbers are of
> fixed length.


> I have some ideas of how to do this, but I'm wondering if there's a
> better way. My current way is to brute force search where the decimal
> is by slicing and then cutoff the extraneous numbers, however, it would
> be nice to stay away from a bunch of if then's.
>
> Does anyone have any ideas on how to do this more efficiently?


If you can live with a small possibility of error, then:

int(float(numIn) * 100.0)

should do the trick.

If you can't, and the numbers are guaranteed to have a decimal point,
this (untested) could do what you want:

aList = numIn.split(".")
result int(aList[0]) * 100 + int(aList[1][:2])

HTH

John Roth
>
> Many Thanks,
> Lorn
>


 
Reply With Quote
 
Elliot Temple
Guest
Posts: n/a
 
      05-28-2005

On May 28, 2005, at 2:52 PM, Lorn wrote:

> Yes, that would get rid of the decimals... but it wouldn't get rid of
> the extraneous precision. Unfortunately, the precision out to the ten
> thousandth is noise... I don't need to round it either as the numbers
> are artifacts of an integer to float conversion. Basically, I need to
> know how many decimal places there are and then make the necessary
> deletions before I can normalize by adding zeros, multiplying, etc.
>
> Thanks for your suggestion, though.


for s in numbers:
decimal_index = s.find('.')
decimal_places = len(s) - decimal_index - 1

Anything wrong with this? (it will mess up if there isn't a decimal
but you can fix that if you want)

-- Elliot Temple
http://www.curi.us/


---
[This E-mail scanned for viruses by Declude Virus]

 
Reply With Quote
 
Lorn
Guest
Posts: n/a
 
      05-28-2005
Thank you Elliot, this solution is the one I was trying to come up
with. Thank you for your help and thank you to everyone for their
suggestions.

Best regards,
Lorn

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
string manipulations bbell1980@gmail.com ASP General 5 11-20-2007 09:19 AM
What manipulations are adversely affected by 8bit images? Mueen Nawaz Digital Photography 12 10-13-2006 01:13 AM
Pixel Manipulations PyPK C++ 6 09-29-2005 04:00 PM
Pixel Manipulations PyPK Python 1 09-28-2005 08:47 PM
Image Manipulations (how to set legends) Stan Sainte-Rose ASP .Net 1 10-02-2004 07:58 PM



Advertisments