import javax.swing.JOptionPane;
public class Test
{
public static void main( String args[] )
{
String input ;
float a = Float.parseFloat(input);
input = JOptionPane.showInputDialog("请输入一个浮点类型的数");
JOptionPane.showMessageDialog(null,"的整数部分是:"+(int)a,"结果",JOptionPane.PLAIN_MESSAGE);
}
}想输入一个浮点类型的数 然后输出它的整数部分 用这种方法为什么不行?
虚心求教各位了!
public class Test
{
public static void main( String args[] )
{
String input ;
float a = Float.parseFloat(input);
input = JOptionPane.showInputDialog("请输入一个浮点类型的数");
JOptionPane.showMessageDialog(null,"的整数部分是:"+(int)a,"结果",JOptionPane.PLAIN_MESSAGE);
}
}想输入一个浮点类型的数 然后输出它的整数部分 用这种方法为什么不行?
虚心求教各位了!
解决方案 »
- 大家是怎么处理get方式提交的数据?
- 搜索条件写成必填项怎么写?
- quartz和spring配置的问题 高手来!急!!!
- lucene之Highlighter报错cannot be resolved to a type
- 从服务器端下载的Excel用浏览器打开,在客户端修改后怎样才能在保存到服务器端
- window xp sp2 [SQLServer 2000 Driver for JDBC]Error establishing socket
- 如果 b类 c方法,调用A类 c方法应该如何书写
- 我好迷茫呀,java?
- 利用itext怎么限制其生成的pdf只读
- BaseServlet JSP转发怎么附带method参数,(没有表单!)
- 在jsp中连接数据库出现了错误,请高手指点~~
- tomcat迁到weblogic下的问题
float a = Float.parseFloat(input);
JOptionPane.showMessageDialog(null,"的整数部分是:"+(int)a,"结果",JOptionPane.PLAIN_MESSAGE);
2、float a = Float.parseFloat(input);这句代码在你未获取到输入的值使已经执行了
import javax.swing.JOptionPane;public class TestInputDialog {
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("请输入一个浮点类型的数");
// 不行,比如: 输入:123456789.123456789;输出:123456792
// float a = Float.parseFloat(input);
// JOptionPane.showMessageDialog(null,"的整数部分是:"+(int)a,"结果",JOptionPane.PLAIN_MESSAGE); String output = input.substring(0, input.contains(".") ? input
.indexOf(".") : input.length());
JOptionPane.showMessageDialog(null, "的整数部分是:" + output, "结果",
JOptionPane.PLAIN_MESSAGE);
}
}
String input ;
float a = Float.parseFloat(input);这里input就是null。
import javax.swing.JOptionPane;
public class Test
{
public static void main( String args[] )
{
String input=JOptionPane.showInputDialog("请输入一个浮点类型的数"); ;
float a = Float.parseFloat(input);
float b = a-(int)a ;
JOptionPane.showMessageDialog(null,input+"的整数部分是:"+(int)a+" 小数部分是"+b,"结果",JOptionPane.PLAIN_MESSAGE);
}
}
但是输出结果呢,如果输入5.9 会输出小数部分是 0.9000001
如果输入7.689会输出小数部分是0.6890001
不晓得什么问题呢
{
String inputMessage=JOptionPane.showInputDialog("请输入一个浮点类型的数");
Double dou = 0.0D;
if(inputMessage.contains("."))
{
dou = Double.parseDouble(inputMessage.split("\\.")[1]);
}
JOptionPane.showMessageDialog(null,inputMessage+"的整数部分是:"
+(int)Math.round(Double.parseDouble(inputMessage))
+" 小数部分是"+Math.round(dou),"结果",JOptionPane.PLAIN_MESSAGE); }
这样Ok!
BigDecimal a = new BigDecimal(input);
BigDecimal b = a.subtract(new BigDecimal(a.intValue()));
JOptionPane.showMessageDialog(null,input+"的整数部分是:"+a.intValue()+" 小数部分是"+b,"结果",JOptionPane.PLAIN_MESSAGE);用大数字类型吧 float有精度限制,FloatingDecimal.readJavaFormatString(s).floatValue()取的其实是近似值