我的程序如下:
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
请大家帮看看是怎么回事。

解决方案 »

  1.   

    我一般是用这种办法拆分的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("输入的不是浮点数。");
    }
      

  2.   

    c=a%10;
    b=(int)(a-c)
    有问题
      

  3.   

    to gao256(蓝天) 
    初学java,还没学
    Float.ParseFloat(a);
    a.replace('.','-');
    c.split("-");
    这些类的方法。to langliu(魑魅魍魉) 
    c=a%1;//是想取余,得到小数部分。---a%10是打错了。
    b=(int)(a-c);//原数减掉小数部分就是整数部分了。
      

  4.   

    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
      

  5.   

    1)a=(float)System.in.read(); 是错误的,它获得的仅仅是第一个字符,比如你输入10.5
    那么 a = (float)'1' 也就是 49 .
    2)应该改为 readLine 获取 String 类型,通过parseFloat转换为float类型.
      

  6.   

    主要是System.in.read() 读取的是byte 的int 
    你 这样写
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    float b = new Integer(in.readLine()).floatValue();
      

  7.   

    to yuzl32(Hello!有酒醉) 
    谢谢。
    看来光有基本的Java基本语法知识是不够的。还需要进行各种类的学习。
    我的入门书出的习题超出java基本语法结构章节的内容范围了。
      

  8.   

    非常感谢大家的帮助。我会继续努力学习JAVA的。
      

  9.   

    System.in.read()返回的是你输入字符的ascii码