有关java中nextDouble()的 问题

问题描述

有关java中nextDouble()的 问题

如题:
下面是代码,为什么不管输入什么数。输出结果都是0.0?
好诡异,求大神解答

import java.util.Random;
import java.util.Scanner;
public class temp {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("STB的成绩是:");
double stm = s. nextFloat();
double sum = 5/9 *(stm-32);
System.out.print(sum);
}
}

解决方案

5.0 / 9.0 这样写

解决方案二:

5/9因为都是整数,所以相当于整除,结果是0,0乘以任何数当然永远是0了。

解决方案三:

楼上都是正解。5/9中有一个不是整数的情况下,就不会出现你说的问题(5.0/9或者5/9.0都行)

解决方案四:

5/9因为都是整数,那就相当于整除,结果为0,应该将double sum = 5/9 *(stm-32);改为double sum = 5.0/9.0 *(stm-32);

解决方案五:

double sum = 5 * (stm - 32) / 9;

解决方案六:

import java.util.Scanner;

public class Temp {

/**
 * @param args
 */
public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
     System.out.println("STB的成绩是:");
    double stm = s.nextDouble();
     double sum = (5.0/9 *(stm-32));
     System.out.print(sum);
}

}
不知道你是想先算哪一部分?但是只要改成这样就可以了 ,原因是你后面的计算5/9是int型的,这样运算是0,然后0在乘以任何数当然是0了 ,
不足为怪!只需要把后面的改成double型就可以了,比如可以使用5.0/9,或者把5/9强制转换成double即double(5/9)等等

时间: 2024-12-21 20:37:24

有关java中nextDouble()的 问题的相关文章

基于Java中Math类的常用函数总结_java

Java中比较常用的几个数学公式的总结: //取整,返回小于目标函数的最大整数,如下将会返回-2 Math.floor(-1.8): //取整,返回发育目标数的最小整数 Math.ceil() //四舍五入取整 Math.round() //计算平方根 Math.sqrt() //计算立方根 Math.cbrt() //返回欧拉数e的n次幂 Math.exp(3); //计算乘方,下面是计算3的2次方 Math.pow(3,2); //计算自然对数 Math.log(); //计算绝对值 Mat

java中如何产生1-25之间的随机数

问题描述 我是Java初学者,还请大家帮忙一下啦.(我主要是不知道如何在Java中产生常见数据类型的随机数)在一个5X5的方格中,在每个方格存放一个1-25的随机数,并且每个格子的数字不能重复. 解决方案 解决方案二:http://developer.51cto.com/art/200906/128348.htm解决方案三:解决两个问题一个是怎么产生随机数的问题:两种方法,可以通过java.util.Random类,也可以通过java.lang.Math类Randomr=newRandom();

Java中Scanner类与BufferReader类的不同点(非常详细)_java

java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本. 下面是两个类的不同之处: 当nextLine()被用在nextXXX()之后,用Scanner类有什么问题 尝试去猜测下面代码的输出内容: // Code using Scanner Class import java.util.Scanner; c

Java中的随机数详解_java

在java中我们可以使用java.util.Random类来产生一个随机数发生.它有两个构造函数,分别是Random()和Random(long seed).Random()是用当前时间即System.currentTimeMillis()作为发生器的种子,而Random(long seed)是用指定的seed作为发生器的种子. 当随机数发生器就是Random对象产生以后,可以通过对象调用不同的方法:nextInt().nextLong().nextFloat().nextDouble()等来获

java中为什么有的变量声明而不赋值?

问题描述 java中为什么有的变量声明而不赋值? java中为什么有的变量声明而不赋值?而有的就值,那什么情况下要赋值,什么情况下不赋值 解决方案 比如对象变量,而调用这个变量的构造函数非常耗费时间,所以我们等用到的时候再创建,如果程序运行完都不访问它,就根本不创建,这样可以提高效率. 对于简单变量,比如int float一类的,建议随手给一个初始值. 解决方案二: 你这个问题给你举个例子,你应该就能理解了 例如: int a; 这是只声明不赋值,则只会在内存的栈区创建引用,堆中并无此引用的指向

Java中透明和不规则Swing窗口

支持透明和不规则窗口已经成为 AWT 和 Swing 团队长久以来梦寐以求的功能.尽管本机应用程序在主要操作系统上使用这项功能已经为时 已久,但在核心 Java 中还不能使用它.即将发布的 "Consumer JRE"正在进行修改,也就是对 Java SE 6 进行重大更新.Java SE 6 将为 创建不规则.全透明和每个像素透明的顶级窗口提供 API. 历史 本机应用程序的开发人员通常在开发 UI 应用程序中享受了更高级的灵活性.但是为此而付出的代价是将应用程序限制在某一特定平台上

求大神解答一下-java中对象流objectstream问题

问题描述 java中对象流objectstream问题 输出的为什么不是cyh男20 ym女20求大神解答!!!!!!!!!! 解决方案 你的代码和我这个一样吗?麻烦把你的代码粘全了,我看看 解决方案二: 这个是照片......... 解决方案三: 我和你写的差不多,不知道你为啥会这样,我给你粘出我的代码package lianxi; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOE

java中如何让setText方法读取指定标签数据的时候特意空出一点点空间

问题描述 java中如何让setText方法读取指定标签数据的时候特意空出一点点空间 如何让setText方法读取指定标签数据的时候特意空出一点点空间java当中 解决方案 http://zhidao.baidu.com/link?url=znfx-j9HEz7fJS4EcXcc-gX096uqEKQMTQo4vBNrc9bhRAlFHGGxkAP8cPTOkATWxy3DqxQwhBwFAscWkNPxe_,用空字符串占位置看看可不可以也就是字符串前面有空格,后面有空格. 解决方案二: 使用全

如何在java中实现读取一个txt文档中的随机一行

问题描述 如何在java中实现读取一个txt文档中的随机一行 如题,如何在java中实现读取一个txt文档中的随机一行? 主要就是怎么随机读取 解决方案 根据楼上的说法,来总结一下吧,总体来说,就是将文件全部都读取出来,每一行存储到一个数组或集合中,然后再通过产生随机数,来对这个数组或是 集合进行随机的访问.这样一来就解决了 解决方案二: 文本文件只能顺序读,不能随机读.你的需求只能是读取文本文件每一行到一个arraylist,然后得到下标范围,产生一个随机数,取那一行 解决方案三: http: