j2me: Unable to import java.math.*;
Sangeeta Vepa
Greenhorn
Posts: 22
posted 13 years ago
Hi all,
I am writing a midp midlet in which i want to ROUND a value so that i can use that value in the graphics to fill a rectangle.
round(anyvalue) is available in java i suppose. But in am unable to import java.math.*.
I am using "Sun One Studio Update 1" to write the code. Please help, is there any other way in which i can store a decimal value into a integer variable.
Basically i want to strip off the decimal part from a value.
The value is stored in a double variable.
Another question: How can i print a double variable.
System.out.println("This is a double value " + variable); doesn't work. What Should be the typecast?
Thanks.
I am writing a midp midlet in which i want to ROUND a value so that i can use that value in the graphics to fill a rectangle.
round(anyvalue) is available in java i suppose. But in am unable to import java.math.*.
I am using "Sun One Studio Update 1" to write the code. Please help, is there any other way in which i can store a decimal value into a integer variable.
Basically i want to strip off the decimal part from a value.
The value is stored in a double variable.
Another question: How can i print a double variable.
System.out.println("This is a double value " + variable); doesn't work. What Should be the typecast?
Thanks.
Lasse Koskela
author
Sheriff
Sheriff
Posts: 11962
5
posted 13 years ago
Do note that not all J2SE packages are available on the J2ME platform.
Furthermore, MIDP 1.0 for example doesn't support floating point numbers (float, double) at all!
Furthermore, MIDP 1.0 for example doesn't support floating point numbers (float, double) at all!
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Sangeeta Vepa
Greenhorn
Posts: 22
posted 13 years ago
Hi Lasse,
I am grateful for this prompt reply.
Let me specify what i want to do.
But i really need to implement this as i m drawing a rectangle based graph in which i have to fill int values only, as fillRect takes only int values.
Now its like an order entry form in which i take order values and show graphs for different clients.
So for every client i calculate the "Total Order Value" which is sum of a number of order for that particular client.
Now i pick up the largest "Total Order Value" for that set of clients.
To show it in a graph, i m filling the rectangles with the value of their orders horizontally. But the total width of a mobile application takes only 180 ( i mean getwidth() returns 180) which throws the graph outside the emulator. To solve this problem i m dividing each client's "Total Order Value" from the "Largest Order Value" and take percentage so that i can show the relative difference in the graph.
THATS WHAT THE PROBLEM IS : WHEN I DIVIDE THERE'S NOTHING THROUGH WHICH I CAN TAKE A PERCENTAGE AND "ROUND" IT OFF. THEN CONVERT THE DOUBLE VALUE TO "INTEGER" AND PUT IT IN drawRect(int,int,int,int).
How can i implement this in any other way.
Thanks
Sangeeta
I am grateful for this prompt reply.
Let me specify what i want to do.
But i really need to implement this as i m drawing a rectangle based graph in which i have to fill int values only, as fillRect takes only int values.
Now its like an order entry form in which i take order values and show graphs for different clients.
So for every client i calculate the "Total Order Value" which is sum of a number of order for that particular client.
Now i pick up the largest "Total Order Value" for that set of clients.
To show it in a graph, i m filling the rectangles with the value of their orders horizontally. But the total width of a mobile application takes only 180 ( i mean getwidth() returns 180) which throws the graph outside the emulator. To solve this problem i m dividing each client's "Total Order Value" from the "Largest Order Value" and take percentage so that i can show the relative difference in the graph.
THATS WHAT THE PROBLEM IS : WHEN I DIVIDE THERE'S NOTHING THROUGH WHICH I CAN TAKE A PERCENTAGE AND "ROUND" IT OFF. THEN CONVERT THE DOUBLE VALUE TO "INTEGER" AND PUT IT IN drawRect(int,int,int,int).
How can i implement this in any other way.
Thanks
Sangeeta
Lasse Koskela
author
Sheriff
Sheriff
Posts: 11962
5
posted 13 years ago
I see the following options:
1) Just do "int x = 5 / 2;" and be happy with what you get (x = 2).
2) Use a specialpurpose floatingpoint API for J2ME such as MathFP or SpruceFloat
3) Write your own fixed point arithmetics floating point math library
1) Just do "int x = 5 / 2;" and be happy with what you get (x = 2).
2) Use a specialpurpose floatingpoint API for J2ME such as MathFP or SpruceFloat
3) Write your own fixed point arithmetics floating point math library
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Gravity is a harsh mistress. But this tiny ad is pretty easy to deal with:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/ThreadBoostfeature
