首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java将整数转换为字符串并计算它

Java将整数转换为字符串并计算它
EN

Stack Overflow用户
提问于 2013-09-11 16:32:00
回答 2查看 157关注 0票数 0

有谁能向我解释一下为什么我的作业不断调整1.0的值,我问我的老师,他告诉我:“在这门语言里,我不记得语言是非常相似的--.你不应该学这个,因为你是在java 1而不是java 2”.不管怎么说,我试着取得成功并自学。

代码语言:javascript
运行
复制
              /**
 *  Author Rich Talcik, Do not Edit or modify
 *  Homework assignment2 
 *  09/11/13
 *  Problem 2.7 page 109
 *  
 */
private static final long serialVersionUID = 1L;
    JLabel jlabel;
    JFrame frame = new JFrame("home work");

    JTextField tfAnswer = new JTextField("Click to find travel Time");
    JTextField tfSpeed = new JTextField("Remvoe Text & Enter Speed here");
    JTextField tfDistance = new JTextField("Remove Text & Enter Distance Here");

    float dSpeed;
    float dDistance;
    String sTotal;
    String sSpeed;
    String sDistance;

     public shapeDrawing() {
         super(new BorderLayout());
         JButton button = new JButton("Calculate my Travel Time");

         //Converting the speed to an Integer from a String



         button.addActionListener(this);


         tfSpeed.addMouseListener(new MouseListener() {




            @Override
            public void mouseClicked(MouseEvent e) {
                // TODO Auto-generated method stub
                tfSpeed.setText("");
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseExited(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mousePressed(MouseEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseReleased(MouseEvent e) {
                // TODO Auto-generated method stub

            }
         });

         tfDistance.addMouseListener(new MouseListener() {


            @Override
            public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
                tfDistance.setText("");
                tfAnswer.setText("");
            }

            @Override
            public void mouseEntered(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseExited(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mousePressed(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseReleased(MouseEvent arg0) {
                // TODO Auto-generated method stub

            }

         });

         add(tfSpeed, BorderLayout.AFTER_LINE_ENDS);
         add(tfDistance, BorderLayout.LINE_START);

         add(tfAnswer, BorderLayout.PAGE_END);
         add(button, BorderLayout.PAGE_START);
         setBorder(BorderFactory.createEmptyBorder(20,20,20,20));

 }


     public void actionPerformed(ActionEvent e) {

         sSpeed = tfSpeed.getText();
         dSpeed = Integer.valueOf(sSpeed);

         //Converting Distance to integer from string
         sDistance = tfSpeed.getText();
         dDistance = Integer.valueOf(sDistance);             


         final float fTotal = (dDistance / dSpeed);


         tfAnswer.setText(String.valueOf(fTotal));
 }

有人能解释为什么tfAnswer.setText总是返回1.0的值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-11 16:38:35

你应该读tfDistance而不是tfSpeed

代码语言:javascript
运行
复制
         sSpeed = tfSpeed.getText();
         dSpeed = Integer.valueOf(sSpeed);

         //Converting Distance to integer from string
         sDistance = tfSpeed.getText(); //!!! copy-past error
         dDistance = Integer.valueOf(sDistance); 

应该是

代码语言:javascript
运行
复制
         sSpeed = tfSpeed.getText();
         dSpeed = Integer.valueOf(sSpeed);

         //Converting Distance to integer from string
         sDistance = tfDistance.getText(); 
         dDistance = Integer.valueOf(sDistance); 
票数 8
EN

Stack Overflow用户

发布于 2013-09-11 16:36:18

基本上,您仍然将整数除以整数(然后将整数转换为浮点数)。试一试:

代码语言:javascript
运行
复制
// Multiplying by 1.0 casts that answer to a float, so the
//     division by dSpeed will also result in a float.
float fTotal = (1.0 * dDistance) / dSpeed;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18746603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档