java小数转换-刚学java的新手遇到的问题

问题描述

刚学java的新手遇到的问题

题目是这样的,编一程序,将摄氏度换为华氏度。公式为:f=c*9/5+32.其中f为华氏度,c为摄氏度。
以下是我的代码
import java.util.*;
public class Main{
public static void main (String[] args){
Scanner in1 = new Scanner(System.in);
int c =in1.nextInt();
double f = c*9/5+32;
System.out.println(f);
}
}
结果只有一位小数,不知道要怎样才能转换为2位小数

解决方案

c*9/5+32

你这个计算式子中都是整型参数,默认会取整的,计算结果不精确,需要最前面的参数转换为double进行计算,简单来讲就是乘以1.0,即计算式修改为:

double f = c*1.0*9/5+32;

然后就是格式化的问题了,建议你使用java.text.DecimalFormat,其参数中可以指定小数的位数,如下面的小数点后面两个零表示两位小数,0和#的区别在于#在最前面和最后面代表0时不显示该位,0会强制显示为0。

double f = c*1.0*9/5+32;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));

解决方案二:


double f = c*1.0*9/5+32;//需要乘以一个小数1.0,不然不对
 BigDecimal   b   =   new   BigDecimal(f);
double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();

解决方案三:

上面两位网友都给出了解决办法,我就不再写代码了。

楼主学java,应该先把java的数据类型先研究一下。网上也有大把的总结资料。
c*9/5+32;这个算出来是整型,而且还有偏差,你觉得9/5等于多少,等于1的。先把数据类型掌握好吧。

时间: 2024-09-27 19:07:15

java小数转换-刚学java的新手遇到的问题的相关文章

给所有刚学JAVA以及常来此版的兄弟

给所有刚学JAVA以及常来此版的兄弟 在坛子上,经常(注意,是经常,而且是非常经常!)碰到一些并不难的问题,甚至同一天就有很多类似的问题,我想作为版主,我不能光是给大家回答问题了(更何况还有很多问题我也不懂),而需要讲一下应该如何学习JAVA的问题了.我不想大家碰到了什么小问题,第一个想到的就是问人,这样是很难得到提高的! 以这两天的例子来说吧!是一个关于如何格式化日期的问题,有问如何将一个Date对象按自己需要的格式来以String输出.也有问,如何将一个给定格式的String类转换成Date

java基础-刚学Java碰到的的一些问题?

问题描述 刚学Java碰到的的一些问题? 1.collection与collections的有什么关系?2.List和Set有什么异同点?3.Map有哪些常用类和特点是什么? 解决方案 1.Collection 接口,Collections 包装类 http://pengcqu.iteye.com/blog/4921962.List有序,Set无序 http://jingyan.baidu.com/article/5d368d1e1887b93f60c057d0.html3.HashMap,Ha

java-新人刚学Java,有个很纠结的点求帮忙解答

问题描述 新人刚学Java,有个很纠结的点求帮忙解答 JAVA 在定义一个类时候,在他的内部定义main方法, package com.pc; public class Person { private String name; private String job; private int age; public Person(String name, String job, int age){ this.name = name; this.job = job; this.age = age;

刚学Java,请教一个问题,谢谢

问题描述 importjavax.swing.*;importjava.awt.event.*;publicclassLottoEventimplementsItemListener,ActionListener,Runnable{LottoMadnessgui;Threadplaying;publicLottoEvent(LottoMadnessin){gui=in;}publicvoidactionPerformed(ActionEventevent){Stringcommand=event

刚学 java,有个小练习不明白,

问题描述 public class Puzzle4 {public static void main(String [] args) {Puzzle4b [] obs = new Puzzle4b[6];int y = 1;int x = 0;int result = 0;while (x < 6) {obs [x] = new Puzzle4b();obs[x].ivar = y;y = y * 10;x = x + 1;}x = 6;while (x > 0) {x = x - 1;res

java javase socket-最近学java,在socket 程序的测试时搞不懂,求指点

问题描述 最近学java,在socket 程序的测试时搞不懂,求指点 我最近在学java,刚好学到了socke程序,我按照教程上写了服务端和客户端的程序,但是在进行联合俩个程序进行通信的时候却测试不了了. 服务端代码: package severDemo; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public cla

java培训-对想学JAVA的建议

对想学JAVA的人,建议几句: 1.学习的第一个月是关键,再累再苦一定要努力和坚持,过了一个月后,后面学习越来越轻松:4个多月 学习你当成一次旅行,有兴奋自然有辛苦,只要坚持一个月,只要坚持一个月,只要坚持一个月,重要的 事说三遍! 2.学JAVA无非是多敲代码,碰到问题15分钟解决不了就问老师,我们从小老师说自己思考,会记得牢, 这个是没错,但如果你一天碰到的问题有8­10个问题,你解决和记牢2­3个问题有什么用,还有7.8个问题 不会,过不了一周你就坚持不下去了. 帮你卸下包袱,轻装前进,才

关于hashmap的东西,新手刚学java

问题描述 hashMap<CLassID,Class>Class类中有成员变量hashMap<FutureID,Month>Month类中有<OptionID,Option> 解决方案

刚学java求大神解答

问题描述 BigDecimalx=newBigDecimal("0.0");BigDecimalincr=newBigDecimal("0.1");MathContextmc=newMathContext(1,RoundingMode.CEILING);for(inti=0;i<=10;i++){System.out.println(x);x=x.add(incr,mc);中的x.add是什么意思,以及mathContext又是什么 解决方案 解决方案二:这些