加法器(基于Swing,计算精度高于Excel)

利用Java的双精度数据类型(double),可以实现有效数字在16位以内的两数的精确加法计算,高于Excel的11位精度。

有意思的是,对于人脑,加法的精度几乎是无限大的。这正应了Java how to program一书中作者引用的一句名言:

“Man is still the most extraordinary computer of all.  —John F. Kennedy”


代码如下:

package example;

//Fig. 3.1: Addition.java
//Addition program that displays the sum of two numbers.
//By Pandenghuang@163.com
import javax.swing.JOptionPane;; // program uses class Scanner

public class AdditionwithSwing 
{
// main method begins execution of Java application
public static void main(String[] args)
{
  
   double number1=Double.parseDouble(JOptionPane.showInputDialog("请输入第一个数字:")); // first number to add
   double number2=Double.parseDouble(JOptionPane.showInputDialog("请输入第二个数字:")); // second number to add
   double sum=number1+number2; // sum of number1 and number2
   
   String message=String.format("您输入的数字为:%.14f和%.14f,两者之和为:%1.14f",number1,number2,sum);
   JOptionPane.showMessageDialog(null, message);

} // end method main
} // end class Addition


运行截屏如下:


人脑、Java和Excel的对比如下:

Decimal poins>=15 
           Number1: 1.012345678901235
           Number2: 9.987678976332452

Sum by Human:11.000024655233687
Sum by     Java:11.000024655233688
Sum by    Excel:11.000024655233700

Precesion ranking: Human>Java>Excel 


Decimal poins<15 
          Number1:  1.01234567890123
          Number2:  9.98767897633245

Sum by Human:11.00002465523368
Sum by     Java:11.00002465523368
Sum by    Excel:11.00002465523370

Precesion ranking: Human=Java>Excel


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值