Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 简单"温度转换"的java程序学习心得
【标  题】:简单"温度转换"的java程序学习心得
【关键字】:java
【来  源】:http://blog.csdn.net/sunyfun/archive/2007/04/10/1559108.aspx

简单"温度转换"的java程序学习心得

Your Ad Here
编写一个应用程序,它读入一个华氏温度值F,将其转换为摄氏温度值C并显示出结果。转换公式如下:
C = 5.0 / 9.0 * (F – 32)

原先编写代码如下:
import java.util.Scanner;

public class DoesHuan
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);

int F;
double C;

System.out.println("请输入一个华氏温度F:");
F = input.nextInt();

C = 5.0 / 9.0 * (F - 32);

System.out.printf("转换成摄氏温度C=%d\n",C);

}
}

编译是通过,但是在运行时确出错。只要有点java基础的人可能都很容易看出,错误是出在那句画下滑线的,就是输出问题,从 JDK5.0开始java也支持了像C语言一样的格式化输出,上面的本意就是想以格式化的输出,但是在定格式时用的格式错了,打印出float才行,即把
C=%d改为C=%f。是能输出了,但是也带来了问题,因为结果要输出的是double,即更高我精确度,没办法,只能改输出语句了,把语句改为了System.out.println("转换成摄氏温度C="+C);即无格式输出限制,改过来之后我再运行,我输入了5输出的结果为-15.0,这时我又纳闷了,什么刚三位数啊,我想了大半天也想不出为什么,结果无意中自己再次运行时输入100,输出结果为37.77777777777778即输出了16位数,这时我才恍然大悟,原来是java的输出机制搞的鬼,输入5时程序能整除,,所以就输出了带1位的精确位数,而输入100时程序不能除尽,所以输出了14位的精确位。因此大家在进行数的运算时要留意一下,不要被程序语言本身的机制给弄糊涂了。
 
【论文】整理思路 / 2007-4-9:【上一篇】
获得Windows系统的时间(发现问题):【下一篇】
【相关文章】
  • JAVA中如何用接口实现多继承和多态 (非常好)
  • java培训笔记二
  • 《Java与模式》学习笔记(8)——序列键生成器与单例及多例模式
  • Java程序性能和速度优化实例
  • 全面接触Java集合框架
  • 学Java最值得读的10本英文书
  • java中的equals()与==的区别
  • 专访:Ruby能否成为第二个Java
  • Java类文件
  • Java中的语句、分支和路径覆盖测试
  • 【随机文章】
  • HTTPMU/UDP
  • 管理是科学还是艺术?
  • 在Delphi中如何对用户的授权,Delphi函数
  • 如何实现可以带详细表格的DropDownList
  • 禁掉安全中心
  • 修复环境变量
  • 饼状统计图
  • 上海电信真如机房服务器托管021-58627218转14分机王永亮(先生)
  • flash声音特效实例精选(1)
  • 为你的站点定做颜色
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.