cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Converting String to Double

Former Member
0 Likes
2,108

Hello,

I am trying to convert a string to double as:

double d= Doubel.parseDouble(String)

but at runtime it is giving NumberFormatException ....

how do we convert String to Double else....

Any help would be highly appreciated.

View Entire Topic
Former Member
0 Likes

Sridhar,

I tried the code although it's changing the value according to my calculations still it doesen't change the value on the screen where I am trying for...

Looking forward to your reply.

sridhar_k2
Active Contributor
0 Likes

I am not sure with your logic. You can print String before you set it to the Context.

like this,

Make sure your QuotasElement Cardinality 1.n.

String str2 = null;

try

{

for(int i=0;i<str.length();i++)

{

char c =str.charAt(i);

if(c!=' '&& c><65)

final_str=final_str+c;

}

double balance =Double.parseDouble(final_str);

balance = balance + addition;

str2 = Double.toString(balance);

wdComponentAPI.getMessageManager().reportSuccess("str2 : "+str2 );

}

catch(Exception e)

{

e.printStackTrace();

}

wdContext.currentQuotasElement().setRest_Posted_Requested(str2);

Regards,

Sridhar

Former Member
0 Likes

Hello Sridhar,

When I debug it I see the new value but some how it's not setting the Context Model attribute since it is a Model Attribute it does not have a cardinality property....

Thanks

sridhar_k2
Active Contributor
0 Likes

I Dont see any wrong in your code. I would check the value before setting it to the context element. Check in the rest of your program, any where you are setting it to null.

Check one more time, is it setting correct values like this.

String str2 = null;

try

{

for(int i=0;i<str.length();i++)

{

char c =str.charAt(i);

if(c!=' '&& c><65)

final_str=final_str+c;

}

double balance =Double.parseDouble(final_str);

balance = balance + addition;

str2 = Double.toString(balance);

wdComponentAPI.getMessageManager().reportSuccess("str2 : "+str2 );

}

catch(Exception e)

{

e.printStackTrace();

}

wdContext.currentQuotasElement().setRest_Posted_Requested(str2);

wdComponentAPI.getMessageManager().reportSuccess("str2 : "+str2 );

Are you getting any exception, or is it setting null to your context element?

Regards,

Sridhar

Former Member
0 Likes

Hello Sridhar,

The statement

wdComponentAPI.getMessageManager().reportSuccess("str2 : "+str2 );

prints the right modified value on the top but it's just not getting reflected in the Table field....and I am not setting it to null.

Please help.

Message was edited by:

SubhashTripathi

sridhar_k2
Active Contributor
0 Likes

Subhash,

I am not clear with your business logic. You want to convert String to Double, and you are converting that double value to String.

I have a Node - TestValueNode

- attribute1

- attribute2

String str = "123";

String str2 = null;

double d = 0.0;

try{

double d= Double.parseDouble(str); // this contains the double value

str2 = Double.toString(d); // this contains the String value same as 'str'

wdContext.currentTestValueNodeElement().setAttribute1(str2);

}catch(NumberFormatException nfe){

}

Write me back about your exact requirement. I can probably help you.

Regards,

Sridhar

Former Member
0 Likes

No...No what I want to do is fetch a String from the Context ...convert it to a Double value ...perform some calculations on it ...convert it back to string again and set it to a context variable...

Looking forward to your reply.

Former Member
0 Likes

Hi,

Assume you have a context value attribute called value of type String. You will read this String value>Convert it to double>Perform an increment operation-->Convert back to String.

String str = wdContext.currentContextElement().getValue();//eg."123"

double d = Double.parseDouble(str);// converted to 123.0

d = d+1;//124.0

wdContext.currentContextElement.setValue(Double.toString(d));//"124.0"

wdComponentAPI.getMessageManager().reportSuccess(wdContext.currentContextElement().getValue());

Warm Regards,

Murtuza

Warm Regards,

Murtuza

Former Member
0 Likes

Hello Murtuza,

Thanks for the reply. I am also doing the same thing and when I try to print it ...it show me th eright value but when I set it to the Context variable ...it does not work.

Looking forward to your reply.

sridhar_k2
Active Contributor
0 Likes

Subhash,

If you are getting correct value in both places print 1 and print 2, check your table cell, whether it is correctly mapped to the context element or not?

If table cell is binded to the context element, it should show the value. there no other mistakes, i couldn't see in your code.

String str = wdContext.currentContextElement().getValue();//eg.

wdComponentAPI.getMessageManager().reportSuccess(wdContext.currentContextElement().getValue()); - "123" - <b>Print 1</b>

double d = Double.parseDouble(str);// converted to 123.0

d = d+1;//124.0

wdContext.currentContextElement.setValue(Double.toString(d));//"124.0"

wdComponentAPI.getMessageManager().reportSuccess(wdContext.currentContextElement().getValue()); - <b>Print 2</b>

Regards,

Sridhar

Former Member
0 Likes

Hi Subhash,

wdComponentAPI.getMessageManager().reportSuccess(wdContext.currentContextElement().getValue());

The above line prints the value in the context itself and for me it printed the correct output.

Regards,

Murtuza