Funny question on double value

hi all,
I have a rather funny question ...
how to getrid of the E from a very huge double number without using the java.math.BigDecimal or java.math.BigInteger classes.
ex:-
Double d1 = new Double("1487194731984573985734095734905873059734059734957340958734957309457389457983475");
Double d2 = new Double(d1.doubleValue() * d1.doubleValue());
d2.doubleValue() will give 7.246073001982964E147
but the result should not have the E but the complete value.
the thing is not to use java.math package.
thx
chandra

Well you can use java.text.DecimalFormat to format the output of a double value. However you'll find that the huge value you think you stored in the Double is not in fact what java has kept - double does not have the precision you have requested and using the DecimalFormat this will be evident... EG doing something like
double d = 123456789012345678901234567890.0;
DecimalFormat df = new DecimalFormat(
System.out.println("123456789012345678901234567890.0");
System.out.println(d);
System.out.println(df.format(d));Should clearly show that the value stored has lost precision. The reason you do not get an overflow as with an int value is that the values scale can be represented in the double not its precision.
Hope that helps...
Talden

Similar Messages

  • OpenSQLException - Cannot assign double value

    Hello,
      I have some table in database with field of type 'double'. I use JDBC to store data in this table and sometimes I would like to place special values in it, eg:
    preparedStatement.setDouble(1, Double.MIN_VALUE);
    Unfortunately I get exception like the one below.
    My question is: what is the allowed range of values for type 'double' in database according to OpenSQL spec ?
    Thanks!
    Marcin Zduniak
      com.sap.sql.log.OpenSQLException: Cannot assign double value 4.9E-324 to host variable 3 because it is not in the allowed range of +/- to +/-.
        at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
        at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
        at com.sap.sql.jdbc.common.CommonPreparedStatement.setDouble(CommonPreparedStatement.java:534)
        at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setDouble(PreparedStatementWrapper.java:281)
        at pl.com.bcc.hai.SpecificationBean0Persistent.ejb_iUpdate(SpecificationBean0Persistent.java:558)
        ... 42 more
    Full exception chain:
    com.sap.engine.services.ejb.exceptions.BaseEJBException: Transaction system failure in method pl.com.bcc.hai.SpecificationLocalLocalObjectImpl0.setTargetValue(java.lang.Double).
         at pl.com.bcc.hai.SpecificationLocalLocalObjectImpl0.setTargetValue(SpecificationLocalLocalObjectImpl0.java:4537)
         at pl.com.bcc.hai.conf.BCC_H_CConfig.setSTimeSeriesesAIM(BCC_H_CConfig.java:4129)
         at pl.com.bcc.hai.conf.wdp.InternalBCC_H_CConfig.setSTimeSeriesesAIM(InternalBCC_H_CConfig.java:1038)
         at pl.com.bcc.hai.conf.wdp.IPublicBCC_H_CConfig$ISTimeSeriesesElement.setAIM(IPublicBCC_H_CConfig.java:3651)
         at pl.com.bcc.hai.conf.wdp.IPublicBCC_H_CConfig$ISTimeSeriesesElement.wdSetObject(IPublicBCC_H_CConfig.java:3786)
         at com.sap.tc.webdynpro.progmodel.context.MappedNodeElement.wdSetObject(MappedNodeElement.java:365)
         at pl.com.bcc.hai.conf.wdp.IPrivateSpecificationEditor$ISTimeSeriesesElement.wdSetObject(IPrivateSpecificationEditor.java:1737)
         at com.sap.tc.webdynpro.progmodel.context.AttributePointer.setObject(AttributePointer.java:223)
         at com.sap.tc.webdynpro.clientserver.data.DataContainer.transportPendingUserInput(DataContainer.java:1267)
         at com.sap.tc.webdynpro.clientserver.data.DataContainer.transportPendingUserInput(DataContainer.java:474)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.transport(ClientComponent.java:548)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.transport(ClientComponent.java:552)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.transport(ClientApplication.java:701)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.transportData(WebDynproMainTask.java:717)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)
         at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:251)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.engine.services.ts.exceptions.BaseRollbackException: Exception in beforeCompletition of ( SAP J2EE Engine JTA Transaction : [1a55ffffffb01205ffffffd4ffffffdd] ).
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:232)
         at pl.com.bcc.hai.SpecificationLocalLocalObjectImpl0.setTargetValue(SpecificationLocalLocalObjectImpl0.java:4486)
         ... 35 more
    Caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: SQLException while the data is being flushed. The persistent object is pl.com.bcc.hai.SpecificationBean0Persistent.
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:101)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.beforeCompletion(TransactionContext.java:506)
         at com.sap.engine.services.ejb.entity.SynchronizationList.beforeCompletion(SynchronizationList.java:136)
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:220)
         ... 36 more
    Caused by: com.sap.sql.log.OpenSQLException: Cannot assign double value 4.9E-324 to host variable 3 because it is not in the allowed range of +/- to +/-.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setDouble(CommonPreparedStatement.java:534)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setDouble(PreparedStatementWrapper.java:281)
         at pl.com.bcc.hai.SpecificationBean0Persistent.ejb_iUpdate(SpecificationBean0Persistent.java:558)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:80)
         ... 41 more
    com.sap.engine.services.ts.exceptions.BaseRollbackException: Exception in beforeCompletition of ( SAP J2EE Engine JTA Transaction : [1a55ffffffb01205ffffffd4ffffffdd] ).
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:232)
         at pl.com.bcc.hai.SpecificationLocalLocalObjectImpl0.setTargetValue(SpecificationLocalLocalObjectImpl0.java:4486)
         at pl.com.bcc.hai.conf.BCC_H_CConfig.setSTimeSeriesesAIM(BCC_H_CConfig.java:4129)
         at pl.com.bcc.hai.conf.wdp.InternalBCC_H_CConfig.setSTimeSeriesesAIM(InternalBCC_H_CConfig.java:1038)
         at pl.com.bcc.hai.conf.wdp.IPublicBCC_H_CConfig$ISTimeSeriesesElement.setAIM(IPublicBCC_H_CConfig.java:3651)
         at pl.com.bcc.hai.conf.wdp.IPublicBCC_H_CConfig$ISTimeSeriesesElement.wdSetObject(IPublicBCC_H_CConfig.java:3786)
         at com.sap.tc.webdynpro.progmodel.context.MappedNodeElement.wdSetObject(MappedNodeElement.java:365)
         at pl.com.bcc.hai.conf.wdp.IPrivateSpecificationEditor$ISTimeSeriesesElement.wdSetObject(IPrivateSpecificationEditor.java:1737)
         at com.sap.tc.webdynpro.progmodel.context.AttributePointer.setObject(AttributePointer.java:223)
         at com.sap.tc.webdynpro.clientserver.data.DataContainer.transportPendingUserInput(DataContainer.java:1267)
         at com.sap.tc.webdynpro.clientserver.data.DataContainer.transportPendingUserInput(DataContainer.java:474)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.transport(ClientComponent.java:548)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.transport(ClientComponent.java:552)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.transport(ClientApplication.java:701)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.transportData(WebDynproMainTask.java:717)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)
         at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:251)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: SQLException while the data is being flushed. The persistent object is pl.com.bcc.hai.SpecificationBean0Persistent.
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:101)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flushAll(TransactionContext.java:429)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.flush(TransactionContext.java:378)
         at com.sap.engine.services.ejb.entity.pm.TransactionContext.beforeCompletion(TransactionContext.java:506)
         at com.sap.engine.services.ejb.entity.SynchronizationList.beforeCompletion(SynchronizationList.java:136)
         at com.sap.engine.services.ts.jta.impl.TransactionImpl.commit(TransactionImpl.java:220)
         ... 36 more
    Caused by: com.sap.sql.log.OpenSQLException: Cannot assign double value 4.9E-324 to host variable 3 because it is not in the allowed range of +/- to +/-.
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:85)
         at com.sap.sql.log.Syslog.createAndLogOpenSQLException(Syslog.java:124)
         at com.sap.sql.jdbc.common.CommonPreparedStatement.setDouble(CommonPreparedStatement.java:534)
         at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setDouble(PreparedStatementWrapper.java:281)
         at pl.com.bcc.hai.SpecificationBean0Persistent.ejb_iUpdate(SpecificationBean0Persistent.java:558)
         at com.sap.engine.services.ejb.entity.pm.UpdatablePersistent.ejbFlush(UpdatablePersistent.java:80)
         ... 41 more

    Hi,
       Thank you for your replay. I didn't touch DB directly, I defined db structure through NetWeaver Dictionary perspective and table that i'm interested in is defined like the one on this screen: http://zduniak.com/tmp/sap_dictionary_double.png
    So I'm looking for generic solution (SAP OpenSQL), not specific to any particular DB vendor.
    Maybe there is somewhere on help.sap.com (i couldn't find unfortunately) information what is the allowed range of values for type 'double' in database according to OpenSQL spec ?
    Thank,
      Marcin Zduniak

  • WPF Data gird double value in cell round up automatically

    Hi All,
      I have one datagrid where one of the columns contains double values. I placed limitations on length and decimal part. Decimal part is always comes with 2 digits. Now during editing the cell that holds double value in DataGrid , if I enter value of
    99.99 then it is becoming 100. At this moment the cell is still under edit mode.
     If the columns hold decimal type values then this automatic round up is not happening. But due to some constraints , at this moment we can't change the columns type from  double to decimal. So I just want to disable the auto round up with double
    values in DataGrid. I searched in MSDN forums but did not find any , tried adding StringFormat for columns. But it did not help.
    I tested by keeping the double value outside of the DataGrid ( in editbox ) , I don't see any automatic round up. So I suspect there could be something with DataGrid that is resulting automatic round up.
    Is there any way to disable this automatic round op on double values in DataGrid? I welcome your comment.
    Thanks,
    Brahmaji.

    Well, 99.99 as you mentioned in your original post is not the same value as 9999999999999999. You cannot store the value 9999999999999999 in a double field.
    You could change the type to decimal to be able to store values with a higher precision:
    public class Movie
    public string Title { get; set; }
    public int Year { get; set; }
    public string Director { get; set; }
    public bool Hit { get; set; }
    public decimal Price { get; set; }
    new Movie()
    Title = "The Lawnmower Man",
    Year = 1992,
    Director = "Brett Leonard",
    Hit = true,
    Price = 22.23M
    If you want to prevent the value of the source property from getting set when an invalid double value is entered you could implement your own ValidationRule:
    namespace SampleGrid
    class MyValidationRule : System.Windows.Controls.ValidationRule
    public override System.Windows.Controls.ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    string s = value.ToString();
    double d;
    if(double.TryParse(s, out d))
    return new System.Windows.Controls.ValidationResult(false, "invalid value");
    return System.Windows.Controls.ValidationResult.ValidResult;
    <DataGridTemplateColumn Header="Price">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Price, StringFormat=##.00}"/>
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate xmlns:local="clr-namespace:SampleGrid">
    <TextBox>
    <TextBox.Text>
    <Binding Path="Price" StringFormat="##.00">
    <Binding.ValidationRules>
    <local:MyValidationRule ValidationStep="RawProposedValue"/>
    </Binding.ValidationRules>
    </Binding>
    </TextBox.Text>
    </TextBox>
    </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
    </DataGridTemplateColumn>
    <!--<DataGridTextColumn Header="Price"
    Binding="{Binding Price, StringFormat=##.00}" />-->
    Then the value won't get rounded. Of course you can still not set the double source property to 9999999999999999 though.
    There is no property that you can set on the DataGrid to prevent the value from getting rounded.
    Hope that helps. 
    Please remember to helpful posts as answer to close the thread and then start a new thread if you have a new question.

  • Subtracting very small double value

    i'm having trouble figuring this out..i'm sure it's a simple solution..anyhoo..i'm trying to run the following line of code
    value=1-((1-b1[8+(i%classes)])*(1-b2[4+(i%classes)]));
    let me point out that value is a double value, and b1 and b2 are double arrays...
    the values of b1 and b2 are very small(around E-60)
    the PROBLEM is that value returns 0.0 when i run my code instead of the small value. I'm sure it's something I'm doing/not doing, but I'd appreciate some help on what is going on. Also as a note, I'm running J2SE 1.3.1. I saw on the API that the min double value is supposed to be around E-324 but any suggestions people? Thanks!!

    1-b1[8+(i%classes)]This is 1 - (10^-60), right? A double value only has about 16 significant digits, not 60, so the nearest possible double number to that is 1. Hence you get 1 - 1*1. There's a whole school of mathematics called "numerical analysis" that deals with questions like this. In this particular case, if b1[x] and b2[x] are always extremely small, you should evaluate the expression in advance so that it looks like b1 + b2 - b1*b2, which in turn will round to b1 + b2.
    PC&#178;

  • Unable to display double values in Excel sheet using JExcel API

    Hi
    I am writing code to generate report in the form of Excel Sheet using JExcel API.
    Everything is going fine but whenever I want to put some double values in a cell it is only showing 2 decimal places. My problem is "I want to show upto five decimal places".
    Any kind of reply might help me lot.
    Thank U.

    If you enable the submit zero option, it still happens? This is a new feature on the display tabl
    #NumericZero Enhancements
    To display a numeric zero in place of an error message, you can enter #NumericZero in any of the three Replacement text fields. When you use the #NumericZero option:
    · Excel formatting for the cell is retained.
    · All calculations with dependency on the cell will compute correctly and will take the value of this cell as zero.
    · This numeric zero is for display only. When you submit, the zero value is NOT submitted back to the data source.
    You cannot set display strings for cells that contain an invalid member or dimension name (metadata error). Metadata errors produce standard descriptive error messages.
    Errors are prioritized in the following order from highest to lowest. The error message for a higher-priority error takes precedence over that for a lower-priority error.
    1. (Highest) Metadata errors
    2. #No access
    3. #Invalid/Meaningless
    4. #No data\Missing

  • Getting Double values in Purchasing cube

    hi experts,
    I m getting double values for 0po_items and ocontr_item in purchasing data cube 0pur_c01.
    i have also applied the test rule in routine ,that values are fine.
    but in cube values are getting double.
    please help..........

    Hi,
    It seems like you are loading data into cube using 2 DataSource  and there is no (consolidated) dso in between.
    If the KF say (qty) you are mapping from both the datasource to the cube, it is going to be doubled in report as 2 records will be found in cube.
    I suggest try to load a single valid record (PO and lien item) one by one into the cube and do check the values in cube for each process. You will get good idea how cube behave while loading data from diff. sources.
    Also try to bring in the one dso where you consolidate the data as per report requirement and then move that data into Cube, will give you required output.
    Thank-You.
    Vinod

  • BO Webi report hierarchy with measure values showing more(almost double value) compare to BW Bex report

    Hi,
    In our BO Webi report hierarchy with measure values showing more(almost double value) compare to BW Bex report. Can any one please help on this.
    Is it BW problem or BO problem?
    I checked in some other threads but it's not given solution.
    Thanks,
    Manjunatha

    Hi,
    Is it BW problem or BO problem? : BO
    is it causing problem with hierarchly data only ?  without hierarchies data is matching or not?
    Post same in SAP BusinessObjects Web Intelligence  .
    Thanks.

  • Need some help in Rounding a double value to a whole number

    Hey Peeps,
    Need some help here, I got a method that returns a value in double after a series of calculation.
    I need to know how can I round the double value, so for example,
    1. if the value is 62222.22222222, it rounds to 62222 and
    2. if the value is 15555.555555, it rounds to 15556
    How can i do this
    Zub

    Hi Keerthi- Try this...
    1. if the value is 62222.22222222, it rounds to 62222 and
    double d = 62222.22222222;long l = (int)Math.round(d * 100); // truncatesd = l / 100.0;
    double d = 62222.22222222;
    System.out.println(d);
    long l = (int)Math.round(d * 100);
    // truncatesSystem.out.println(l);
    d = l / 100.0;System.out.println(d);
    for (int i = 0; i < 1000; i++)
    {    d -= 0.1;}
    for (int i = 0; i < 1000; i++)
    {    d += 0.1;}System.out.println(d);
    regards- Julie Bunavicz
    Output:
    62222.22222222
    62222
    62222.22
    62222.22000000000001

  • How do i convert a float value to a double value?

    How do i convert a float value to a double value? HELP PLEASE!! im very stuck!! i gota float data type and i need to convert it to a double data type in order to use it in another operation.....
    thank u so much!

    safe dint realise ppl were so arrogant. thanks for the reply but less of the sarcasm!

  • How can I format the double value?

    Hi,
    I am trying to format the double variable as like,
    double var = 1234.56789
    but i want that variable as like var = 1234.56
    How can i do that in java?
    Please help me.
    From
    Parshuram Walunjkar

    Try something like the following, assume the variable 'd' underneath is your double value that you want to format.
    double d = 4.45678;
    NumberFormat nf = NumberFormat.getNumberInstance();
    nf.setMaximumFractionDigits(5);
    nf.setMinimumFractionDigits(5);
    String number = nf.format(d);
    Then use the string "number" for printing out.

  • How to convert from scientific notations to double value ?

    Hi all,
    i need to convert a string 2E-23 to corresponding double values so that i can compare it one more existing double value. Is there any API present for this ?
    Thanks and regards,
    rosamama.

    Note: This thread was originally posted in the Swing forum, but moved to this forum for closer topic alignment.

  • JSlider using double values instead of INT

    I need to create a slider that uses double values instead of ints...
    the default constructor is JSlider temp = new JSlider(JSlider.HORIZONTAL, int, int, int)....but i need to use
    JSlider temp = new JSlider(JSlider.HORIZONTAL, double,double,double)
    I want my slider to go from like 1.0 to 10.0 ....any ideas?
    thanks

    me has ritten a sample code fur ya... mite help...
    sorrie... not commented properly...
    import java.awt.event.*;
    import java.util.Vector;
    import javax.swing.event.*;
    import java.awt.*;
    import javax.swing.*;
    public class Test extends JPanel {
         //Variable Declarations...
         JPanel valuesPanel;
         public JSlider slider;
         public JTextField midText;
         public JTextField lowText;
         public JTextField highText;
         int precision=1000;//to convert to double...(100-> 2decimal places, 1000->3decimal places.......)
         double lowLimit = 0;
         double midLimit = 5;
         double highLimit = 10;
         public Test() {
              initialize();
              addListeners();
              initComponents();
              addComponents();
         public void initialize() {
              valuesPanel = new JPanel();
              highText = new JTextField();
              midText = new JTextField();
              lowText = new JTextField();
              slider = new JSlider();
         public void addListeners() {
              addTextListenerTo( highText );
              addTextListenerTo( midText );
              addTextListenerTo( lowText );
              // if the slider is moved, the value of the mid will be updated in the testbox.
              // Sliders work on integers and not on double. so the limits are divided by precision to get a double number.
              slider.addChangeListener(
                   new ChangeListener() {
                        public void stateChanged( ChangeEvent e ) {
                             double n = ( double ) ( ( JSlider ) e.getSource() ).getValue();
                             midLimit = n / precision;
                             midText.setText( Double.toString( midLimit ) );
         * Sets different attributes and properties of the components
         public void initComponents() {
              highText.setText( Double.toString( highLimit ) );
              midText.setText( Double.toString( midLimit ) );
              lowText.setText( Double.toString( lowLimit ) );
              slider.setPaintTrack( true );
              slider.setPaintTicks( true );
              slider.setMinimum( ( int ) ( lowLimit * precision ) );
              slider.setValue( ( int ) ( lowLimit * precision ) );
              slider.setMaximum( ( int ) ( highLimit * precision ) );
         * Add all the components to the container (Panel).
         public void addComponents() {
              setLayout( new BorderLayout() );
              valuesPanel.setLayout( new GridLayout( 3, 3, 5, 5 ) );
              valuesPanel.add( new JLabel("Low") );          
              valuesPanel.add( highText );
              valuesPanel.add( new JLabel("Mid") );
              valuesPanel.add( midText );
              valuesPanel.add( new JLabel("High") );
              valuesPanel.add( lowText );
              add( valuesPanel, BorderLayout.CENTER);
              add( slider, BorderLayout.SOUTH);
         * Adds Focus and Action Listeners to the TextFields
         public void addTextListenerTo( JTextField textField ) {
              textField.addFocusListener(
                   new FocusAdapter() {
                        public void focusLost( FocusEvent evt ) {
                             updateLimits( ( JTextField ) evt.getSource() );
                        public void focusGained( FocusEvent evt ) {
                             String tempOldString = ( ( JTextField ) evt.getSource() ).getText();
              textField.addActionListener(
                   new ActionListener() {
                        public void actionPerformed( ActionEvent evt ) {
                             updateLimits( ( JTextField ) evt.getSource() );
         * This function is called when any action is performed on the text. It checks
         * if the value is valid and if not it displays a message. Also it updates the
         * slider value.
         *@param textField
         public void updateLimits( JTextField textField ) {
              double tempN = 0;
              try {
                   tempN = Double.parseDouble( textField.getText() );
                   if ( textField.equals( lowText ) ) {
                        lowLimit = tempN;
                        slider.setMinimum( ( int ) ( lowLimit * precision ) );
                   else if ( textField.equals( highText ) ) {
                        highLimit = tempN;
                        slider.setMaximum( ( int ) ( highLimit * precision ) );
                   else if ( textField.equals( midText ) ) {
                        midLimit = tempN;
                        slider.setValue( ( int ) ( midLimit * precision ) );
              } catch ( Exception ex ) {
                   JOptionPane.showMessageDialog( this, "Not a Number", "Error !!!", JOptionPane.WARNING_MESSAGE );
                   textField.setText( "0" );
         public static void main(String args[]) {
         JFrame f=new JFrame("test Frame");
         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         f.getContentPane().add(new Test());
         f.pack();
         f.setVisible(true);

  • Cash Flow Report (FSI3/FSI5) pulling double value

    Dear SAP Experts
    I am creating a Cash Flow Statement via FSI3 /FSI5. While selecting key figure "Total Credit Postings" system is pulling the double values for the assigned GL. Please see below;
    Please see the output.
    GL total credit value is 269610.68 where as report is showing value 539221, which is double the value.
    Any suggestions to correct the error??
    Regards
    Syed Zia Abbas

    Hi Melia
    For your calculation, you can cross check your logic with actual values form table and  see why it is not matching in case of INCORRECT amount.
    Cash Flow is genuinely generated per Fiscal year and that will show the comparison of Reporting year (For Ex Current Year) with comparison year (For Ex Last Year).
    As a correct solution, you can give selection parameter as below;
    Reporting Year
    Reporting Pd From
    Reporting Pd To
    Comparison Year
    Comparison Pd From
    Comparison Pd To.
    That is the way I have created CFS. Let me know if you need more info.
    Regards
    Syed Zia Abbas

  • SQ01 double value

    Hi,
    In my sq01 Query i am using LDB SDF ( FI/CO) .
    It running Successfully.
    only one Problem is that  it showing Double Value Why ?
    How to Solve this ?
    Thanks

    What is showing double value.
    It may be because the output may be at the line level.

  • Converting String  into a Double value

    Hi
    iam really stuck can anyone please help that what i should do
    to convert a String variable into a double value
    iam using CLDC1.1 and MIDP2.0
    please tell me how its done
    Thank in advance

    hi,
    thanx alot it really worked now i want to convert the answer of the double variable back to string can you please tell me how to do it thanx alot

Maybe you are looking for

  • IDOCS: Segment Definition and Segment Type

    Hi Gurus, We are working on IDOCs and trying to send a Location Master IDOCs to Third party system. 1. In the IDOC print preview we are in a position to see the IDOC segment type Ex: E1TPLOC but customer is asking for Segment definition E2TPLOC. When

  • HOW TO use .jar in TOMCAT 4.0.5

    Hi, I'm try to use Activation.jar, mail.jar and soap.jar in a MiMe sample, but when I invoke this sample, de response of the server was: <stackTrace>java.lang.NoClassDefFoundError: org/apache/soap/Envelope at java.lang.Class.getMethod0(Native Method)

  • Photoshop CS5 problem

    When trying to set up a custom paper size in CS5 the application quits. This keeps me from either setting up a new size or changing one of the sizes that were set up before Yosemite. I've searched for CS5 Yosemite upgrade with no success. Can anyone

  • BAPI_OBJCL_CREATE

    Hi Experts,     Am creating an assignment as follows for WB66 transaction using this BAPI. CALL FUNCTION 'BAPI_OBJCL_CREATE' EXPORTING objectkeynew = '000000001' objecttablenew = 'KNA1' classnumnew = 'TEST_SITE_GROUP' classtypenew = '030'   The retur

  • Do they have proffesionals at the store who can put your screen protector on for you?

    I'm getting a new iphone and I want to put a screen protrector on it, but I'm terrible at putting them on so do they have proffesionals at the apple store who can put your screen protector on for you?