在J2ME中模拟浮点运算(不够精确)
出自:http://blog.csdn.net/mailbomb
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
众所周知,CLDC1.0不支持浮点数,即不支持float和double两种基本数据类型,但是在程序中,我们经常需要使用一些浮点数来进行运算。这个时候你可以使用MathFP浮点数库,但是有些时候我们做的工作很简单,对于结果的要求也不精确,这个时候,我们就可以使用以下方法来模拟浮点运算。
模拟浮点运算的原理其实很简单,就是先将需要运算的数字扩大10的整数次方倍然后进行运算。
例如,你需要计算一个圆的周长,假设圆的半径为6,则圆的周长应该为2 * 6 * 3.14,而CLDC1.0中没有浮点数,使用数字3来代替3.14误差又比较大,则可以这样来处理:
(2 * 6 * 314) / 100
即先将需要运算的浮点数,如3.14扩大100倍,然后在运算结束时再除以100即可。
如下是简单的实现代码:
//计算圆周长
int r = 6;
int pi = 314;
int l = 0;
l = (2 * 6 * 314)/100;
则变量l就是近似的圆周长。
注意,上面的计算使用的是数学上的去1法,即不管小数部分是多少都舍去。如果想更加精确一些(当然还是不够准确),可以再使用四舍五入,这样上面的代码可以修改为:
//计算圆周长
int r = 6;
int pi = 314;
int l = 0;
l = (2 * 6 * 314 + 50)/100;
这里在运算结果的基础上加上50就实现了四舍五入,如果你的小数后面是3位,则需要加上500,依次类推。
这样,通过上面的方式,可以实现近似的浮点运算,虽然不是很准确,但是还是可以适用一些要求不高的场合。
当然,随着CLDC1.1的普及,将为J2ME带来float和double这两种数据类型,那个时候就不需要这些内容了。
分享到:
相关推荐
在Java 2 Micro Edition (J2ME)平台上,由于资源有限,不支持Java标准版(J2SE)中的所有功能,特别是浮点运算。J2ME主要针对移动设备和嵌入式系统,这些设备通常计算能力较弱,内存有限。因此,开发者需要找到一种...
1. **浮点运算支持**:MathFP库弥补了J2ME中对浮点运算支持的不足,使得开发者可以在资源有限的移动设备上进行复杂的数学计算,包括加、减、乘、除等基本操作。 2. **函数运算**:除了基础的算术运算,MathFP库还...
J2ME的模拟浮点数类库就是为了弥补这一不足,它提供了一套完整的数学函数,使得开发者能够在J2ME环境中进行复杂的浮点数计算。 首先,我们要理解浮点数在计算机科学中的重要性。浮点数用于表示实数,广泛应用于科学...
浮点运算在计算机科学中主要用于处理实数,特别是在需要进行精确数学计算或模拟真实世界现象时。J2ME虽然在功能上受限,但仍然提供了对浮点运算的支持,不过相较于Java Standard Edition(JSE),它的实现可能会有所...
模拟器会解析JAR文件中的类和资源,并在模拟的移动设备环境中执行程序。这样,你就可以在模拟的手机屏幕上看到2007版QQ的登录界面,输入账号和密码,与朋友进行聊天。 值得注意的是,由于2007年的QQ版本可能不支持...
《MathFP 2.0 定点库:解决J2ME中的浮点运算难题》 在Java Micro Edition(J2ME)开发环境中,由于其针对嵌入式设备的特性,某些标准Java API并未完全实现,其中就包括对浮点数运算的支持。这在需要进行精确数学...
在本实验中,我们探讨了如何使用Java Micro Edition(J2ME)平台创建一个简单的小球模拟动画。J2ME是一种轻量级的Java框架,特别适合于移动设备和嵌入式系统的应用程序开发。实验的主要目标是实现一个小红球在屏幕上...
在J2ME中,开发人员需要处理资源有限的环境,因此,提供中文输入功能是一个挑战,因为这需要在小型设备上实现复杂的字符编码和输入法。 本"J2ME中文输入Demo"旨在为开发者展示如何在J2ME环境中实现基本的中文输入...
本教程将深入讲解J2ME在手机程序开发中的应用,帮助开发者掌握这一核心技术。 ### J2ME技术概述 J2ME由两大部分构成:配置(Configurations)和框架(Profiles)。配置定义了运行时环境的基本特性,如内存大小和...
在J2ME中,处理BMP格式的图片可能需要更多的内存资源,但在某些情况下,如需要高质量的图像显示时,BMP可能是首选。 2. **SWF格式**: SWF是Adobe Flash产生的动画格式,它采用矢量图形技术,即使放大也不会损失...
在**J2ME中文API**中,主要包含以下几个核心部分: 1. **CLDC(Connected Limited Device Configuration)**:这是一个轻量级的Java虚拟机,用于资源有限的设备。它定义了运行时环境和基本类库。 2. **MIDP...
J2ME中文教程 不错的学习资料,刚开始学习的可以参考下!
在J2ME中,RecordStore是用于存储非结构化数据的主要机制。开发者可以创建、读取、更新和删除RecordStore中的记录。此外,FileConnection API允许开发者访问设备的文件系统,进行文件的读写操作。 **游戏开发** ...
这个J2ME中文版教程是针对初学者和有一定经验的开发者编写的,旨在深入浅出地讲解J2ME的基础知识和高级特性,帮助读者掌握在移动平台上开发应用程序的技能。 **教程内容概览** 1. **J2ME概述**:教程首先介绍了...
在深入探讨J2ME中文API(HTML)的相关知识点前,我们先来了解一下J2ME的基本概念及其在移动设备开发中的重要性。J2ME,即Java 2 Platform, Micro Edition,是Sun Microsystems(现已被Oracle收购)推出的一种适用于...
在J2ME(Java 2 Micro Edition)平台上开发游戏或者应用程序时,有时我们需要模拟物理现象,比如投掷物体的轨迹,这通常涉及到抛物线的绘制。本文将深入探讨两种在J2ME中实现抛物线的方法。 首先,我们要了解抛物线...
基于J2ME的手机模拟系统开发,毕业设计的原版资料
在J2ME(Java 2 Micro Edition)平台上,图片的任意角度旋转是一个常见的需求,尤其在游戏和图形应用中。本文将深入探讨如何在J2ME中实现这一功能,包括解决旋转过程中的关键问题和优化算法。 首先,我们需要了解...