JAVA关于float类型的乘法的问题
来源:百度知道 编辑:UC知道 时间:2024/05/11 20:59:38
两个JTextField文本框,一个文本框里写13.7,另一个文本框里写9,我把两个文本框里的字符串给转换成float类型的了,但是一相乘,结果为什么是 123.299995 啊?
结果正常应该是 123.3 啊,怎样才能得到123.3啊?
下边是我 的 代码:
package untitled1;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
public Frame1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() thro
结果正常应该是 123.3 啊,怎样才能得到123.3啊?
下边是我 的 代码:
package untitled1;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
public Frame1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() thro
System.out.println(a*b);
改成
System.out.printf("%.2f",a * b);
进行格式化输出
String.format也有这个功能
具体的去查查API
你将他的输出语句用format方法解决撒
----------------------------------
成就软件工程师
就找成都索乐思
联系电话:028-86663313
正常的计算误差
没办法的...