Java本身的数据处理不是很好,有精度丢失的问题。想办法不用除法吧,或是用BigDecimal这个类。
解决方案 »
- 下了一个人家写好的程序.怎么打开??
- 新人求教
- java输入输出流的几个小问题
- 求助:关于hello问题
- 请教JAVA高手..如何学好JAVA?起步时看些什么书比较好???散分100
- 请高手指点,我是新手
- 问一下各位高手,JAVA里的Socket类可不可以传输自定义的对象。如果不行要用什么传输啊!!!!
- 简单问题!!为什么现在jdk1.4,1.5的安装程序那么大4,50M,以前的jdk1l.3才几M?谢谢
- 如何用java生成guid?如果有其它的生成唯一标识符的解决方案也可以
- 请问如何将tomcat设为每次访问jsp时都重新编译
- 大家讨论一下这种情况下对象的回收!!!
- 小弟有一个困惑很久的问题,那问大哥愿指点迷津!!
BigDecimal step = new BigDecimal("0.05");
BigDecimal t = new BigDecimal("0");
System.out.println(step.doubleValue());
for ( int i = 0; i <= 100000; i++){
t = t.add(step);
//if ( i % 10000 == 0)
System.out.println(i + ": " + t.doubleValue());
}
try {
Thread me = Thread.currentThread();
while((runner == me) && demo) {
analyseValue();
computeCurve();
pRight.repaint(); // 绘制曲线
repaint(); // 绘制弹簧系统
runner.sleep(100);
}
runner = null;
}
catch(InterruptedException ex) {
System.out.println("中断");
}
}private void computeCurve() {
double tmp = 6;
total += step;
if(total >= tmp) {
pRight.setXEnd(tmp);
..........
overRangeX = true;// 超出屏幕,x轴从0-6,超出后total还在增加,只是还是重绘0-6的曲线
......... // 当坐标移动时,调用新的total
}
else {
pRight.setXEnd(total); // 设置曲线的动点,每次重绘都重0-total
............. //
}
...............
}
其实代码是很简单的,就是把total送出,绘制正弦曲线,当时间长了线程暂停时(用按钮控制线程暂停),现出小球的位置,和算出了的曲线有偏差。h=Asin(ω * total + φ)。就象手表,走的时间长了就能看出和标准时间的偏差了。