• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Possible loss of precision

 
kavitha ms
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
import java.awt.*;
import java.util.*;
import java.applet.*;
import java.lang.*;

public class m1 extends Applet
{
public void paint (Graphics g)
{
float Dx=0,Dy=0,Dz=0, Vxy=0,Vz=0,Vx=0,Vy=0,Axy=0,Az=0;
double heading=75, climb=30;
float TAccn=15,TSpeed=10,t=5;

int n=1,i;

double[] X = new double[5];
double[] Y = new double[5];
double[] Z = new double[5];

//Acceleration with climb motion

Axy = TAccn * ((float) Math.cos(climb));

Az = TAccn * ((float) Math.sin(climb));

Vxy = TSpeed * ((float) Math.cos(climb));

Vz = TSpeed * ((float) Math.sin(climb));

Vx = Vxy * ((float) Math.sin(heading));

Vy = Vxy * ((float) Math.cos(heading));

float sin_heading = (float) Math.sin(heading);

float t1 = t * t;

Dx = 0.5 * Axy * t1 * sin_heading;

Dy = 0.5 * Axy * t1 * ((float) Math.cos(heading));

Dz = 0.5 * Az * t1;

for(i=0;i<n;i++)
{

X[i] = X[i] + Vx * t + Dx;

Y[i] = Y[i] + Vy * t + Dy;

Z[i] = Z[i] + Vz * t + Dz;

int x1 = (int) X[i];
int y1 = (int) Y[i];

g.drawLine(0,0,x1,y1);
}
}

}



this is the program i hav written

but its giving error like
possible loss of precision for the lines

Dx = 0.5 * Axy * t1 * sin_heading;

Dy = 0.5 * Axy * t1 * ((float) Math.cos(heading));

Dz = 0.5 * Az * t1;
 
Vijitha Kumara
Bartender
Posts: 4116
72
Mac TypeScript Chrome Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


0.5 * Axy * t1 * sin_heading;



The problem is you are multiplying the float variable with 0.5 (which is double by default). Try using 0.5f if you want to do it the same way you are doing.
[ October 22, 2008: Message edited by: Vijitha Kumara ]
 
Campbell Ritchie
Marshal
Posts: 80629
471
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
And you would appear to have missed the naming policy when you logged on, "Kavitha Ms". We require first name-space-last name not abbreviation. Please go to "my profile" "update profile" and correct your displayed name to comply.

CR
 
Martijn Verburg
author
Posts: 3285
13
Mac OS X Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Also please do UseCodeTags, it makes it easier for us to help you . Now onto your question, did you manage to resolve your problem?
 
reply
    Bookmark Topic Watch Topic
  • New Topic