Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

math. class in java

 
Juan Villena
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
331(t+273) ^1/2
_____
( 273 )

331 multiply t+273/273 the result is exponent 1/2
how do you write this equation in java using math.class


thanks
 
Ulf Dittmer
Rancher
Posts: 42968
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Exponent 0.5 means square root - there's a method for that in the Math class.
 
Juan Villena
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


So you can express it like this:
331.5*(math.sqrt((t8273)/273)

is this right???


 
Juan Villena
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

331.5* (math.sqrt((t*273)/273))
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15436
41
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Juan Villena wrote:331.5*(math.sqrt((t8273)/273)

That doesn't look correct. Why suddenly 331.5 instead of 331?

From your description it is unclear of what exactly you want to take the square root. Just of the (t + 273) part or of the whole equation?
 
Rob Spoor
Sheriff
Pie
Posts: 20605
60
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There's also a method Math.pow which takes two doubles. You could use that if the exponent is a fraction other than 0.5.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49733
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rob Spoor wrote:There's also a method Math.pow which takes two doubles. You could use that if the exponent is a fraction other than 0.5.
. . . or 0.3333333333333333333333333333333333333333333 because there is a cube root method too.
Don't use Math,pow(x, 2) for squares. Use x * x instead.
 
Juan Villena
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jesper the jonq, actually , i want to square root the whole equation, an\d is 331

Rob Spoor and Campbell Ritchie: so can i use math.pow in this particular ecuation or just math.sqrt
and can you tell if this is right or wrong : 331*(math.sqrt((t*273)/273)
or can you guys write this ecuation using math class please.

thanks a lot
 
fred rosenberger
lowercase baba
Bartender
Posts: 12180
34
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
<pedant>
There is no such thing as a 'math' class in java. There is, however, a Math class.
</pedant>
 
Campbell Ritchie
Sheriff
Pie
Posts: 49733
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As Fred has pointed out, capital M.

... Math.sqrt(123.456) ...? Yes.
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15436
41
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you want the square root of the whole equation, then you should obviously put the whole equation between the brackets for the method call to Math.sqrt:

So, Math.sqrt(331 * ...) and not 331 * Math.sqrt(...)
 
Ulf Dittmer
Rancher
Posts: 42968
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the difference between "t" and "(t*273)/273" ? Is that intentional?
 
Campbell Ritchie
Sheriff
Pie
Posts: 49733
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think Jesper has seen the error and inadvertently corrected it from * to +. With 273 in, probably something to do with absolute temperatures.

Beware of integer arithmetic: for any t such that t < 273 and t ≥ 0, the result of the division will turn out to be 1, if t is an integer.
 
Juan Villena
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks a lot, I understand now...about Math.class... But my doubt is about the exponent ' 1/2 '. Using the same equation, if I want to elevated it to exponent 1/2, what Math.class should I use n which one is the correct one.
Math.sqrt or Math.pow ??

Thanks
 
fred rosenberger
lowercase baba
Bartender
Posts: 12180
34
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Did you read the API on the Math class? It tells you quite clearly:

static double sqrt(double a)
Returns the correctly rounded positive square root of a double value.

so if you want the square root, you use this.
static double pow(double a, double b)
Returns the value of the first argument raised to the power of the second argument.

If you want to raise a number to some arbitrary power, you use this.

Since raising a number to the 1/2 power is BY DEFINITION taking the square root, you can use either one you want.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49733
69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Actually if you give the exponent 1 / 2, you will receive the result 1.0.

The reason is that 1 / 2 is integer arithmetic, and will return 0, so you will get x to the power of 0, and that returns 1.

I would say, if they have got a method which is specially designed for square roots, use that method. It's easier for a start.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic