如何取得浮点数的整数部分和小数部分?

ylg007 2006-01-14 10:04:58
我的程序如下:
import java.io.*;
public class FloatGet
{
public static void main(String args[])
{
float a=0,c=0;
int b;
System.out.println("请输入浮点数:");
try
{
a=(float)System.in.read();
}
catch(Exception e)
{
System.out.println("error:"+e.toString());
}
c=a%10;
b=(int)(a-c);
System.out.println("小数部分:"+c);
System.out.println("整数部分:"+b);
}//end of main method
}//end of class
输入:23.5
输出:
小数部分:0.0
整数部分:50
请大家帮看看是怎么回事。
...全文
862 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingtju 2006-01-14
  • 打赏
  • 举报
回复
System.in.read()返回的是你输入字符的ascii码
ylg007 2006-01-14
  • 打赏
  • 举报
回复
非常感谢大家的帮助。我会继续努力学习JAVA的。
ylg007 2006-01-14
  • 打赏
  • 举报
回复
to yuzl32(Hello!有酒醉)
谢谢。
看来光有基本的Java基本语法知识是不够的。还需要进行各种类的学习。
我的入门书出的习题超出java基本语法结构章节的内容范围了。
huilong_2003 2006-01-14
  • 打赏
  • 举报
回复
主要是System.in.read() 读取的是byte 的int


你 这样写
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
float b = new Integer(in.readLine()).floatValue();
yuzl32 2006-01-14
  • 打赏
  • 举报
回复
1)a=(float)System.in.read(); 是错误的,它获得的仅仅是第一个字符,比如你输入10.5
那么 a = (float)'1' 也就是 49 .
2)应该改为 readLine 获取 String 类型,通过parseFloat转换为float类型.
yuzl32 2006-01-14
  • 打赏
  • 举报
回复
import java.io.*;
public class FloatGet
{
public static void main(String args[])
{
float a=0,c=0;
int b;
System.out.println("请输入浮点数:");
try
{
// 更改
a=Float.parseFloat((new BufferedReader(new InputStreamReader(System.in))).readLine());
}
catch(Exception e)
{
System.out.println("error:"+e.toString());
}
c=a%1;
b=(int)(a-c);
System.out.println("小数部分:"+c);
System.out.println("整数部分:"+b);
}//end of main method
}//end of class
ylg007 2006-01-14
  • 打赏
  • 举报
回复
to gao256(蓝天)
初学java,还没学
Float.ParseFloat(a);
a.replace('.','-');
c.split("-");
这些类的方法。

to langliu(魑魅魍魉)
c=a%1;//是想取余,得到小数部分。---a%10是打错了。
b=(int)(a-c);//原数减掉小数部分就是整数部分了。
langliu 2006-01-14
  • 打赏
  • 举报
回复
c=a%10;
b=(int)(a-c)
有问题
gao256 2006-01-14
  • 打赏
  • 举报
回复
我一般是用这种办法拆分的

String a = system.in.read();
try{
float b = Float.ParseFloat(a);
String c = a.replace('.','-');
String[] d = c.split("-");
System.out.println("小数部分:"+d[1]);
System.out.println("整数部分:"+d[0]);
}
catch(Exception e)
{
System.out.println("输入的不是浮点数。");
}
superslash 2006-01-14
  • 打赏
  • 举报
回复
感觉用DecimalFormat取更好

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧