做一个android计算器的sin下怎么计算sin.cos

简单实现Android计算器功能
作者:程序员小强
字体:[ ] 类型:转载 时间:
这篇文章主要为大家详细介绍了自己动手实现的Android计算器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
自己写的安卓的计算器:
注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了。
&安卓计算器Android &wbr&calculator
工程下载链接:
package com.example.
import android.os.B
import android.app.A
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.TextV
public class MainActivity extends Activity implements OnClickListener{
Button btn_1,btn_2,btn_3,
btn_4,btn_5,btn_6,
btn_7,btn_8,btn_9,
btn_10,btn_11,btn_12,
btn_13,btn_14,btn_15,
btn_16,btn_17,btn_18,
btn_19,btn_20,btn_21,btn_22;
//用于判断是否需要重新输入
//屏幕上数字的正负状态
//操作数与操作符
float operator1,operator2;
//jre1.6不支持switch(字符串)
//"+、—、*、/、x^y、/x、sinx、cosx"--&1、2、3、4、5、6、7、8
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化操作数(默认为0)操作符(默认为+)
operator1=0;
operator2=0;
front=0;//默认为正数
TextView txt=(TextView) findViewById(R.id.textView1);
txt.setText("00");
//获取button对象
btn_1= (Button)findViewById(R.id.button1);
btn_2= (Button)findViewById(R.id.button2);
btn_3= (Button)findViewById(R.id.button3);
btn_4= (Button)findViewById(R.id.button4);
btn_5= (Button)findViewById(R.id.button5);
btn_6= (Button)findViewById(R.id.button6);
btn_7= (Button)findViewById(R.id.button7);
btn_8= (Button)findViewById(R.id.button8);
btn_9= (Button)findViewById(R.id.button9);
btn_10= (Button)findViewById(R.id.button10);
btn_11= (Button)findViewById(R.id.button11);
btn_12= (Button)findViewById(R.id.button12);
btn_13= (Button)findViewById(R.id.button13);
btn_14= (Button)findViewById(R.id.button14);
btn_15= (Button)findViewById(R.id.button15);
btn_16= (Button)findViewById(R.id.button16);
btn_17= (Button)findViewById(R.id.button17);
btn_18= (Button)findViewById(R.id.button18);
btn_19= (Button)findViewById(R.id.button19);
btn_20= (Button)findViewById(R.id.button20);
btn_21= (Button)findViewById(R.id.button21);
btn_22= (Button)findViewById(R.id.button22);
//注册点击事件
btn_1.setOnClickListener(this);
btn_2.setOnClickListener(this);
btn_3.setOnClickListener(this);
btn_4.setOnClickListener(this);
btn_5.setOnClickListener(this);
btn_6.setOnClickListener(this);
btn_7.setOnClickListener(this);
btn_8.setOnClickListener(this);
btn_9.setOnClickListener(this);
btn_10.setOnClickListener(this);
btn_11.setOnClickListener(this);
btn_12.setOnClickListener(this);
btn_13.setOnClickListener(this);
btn_14.setOnClickListener(this);
btn_15.setOnClickListener(this);
btn_16.setOnClickListener(this);
btn_17.setOnClickListener(this);
btn_18.setOnClickListener(this);
btn_19.setOnClickListener(this);
btn_20.setOnClickListener(this);
btn_21.setOnClickListener(this);
btn_22.setOnClickListener(this);
//点击事件处理
public void onClick(View btn) {
//获取文本框
TextView txt=(TextView) findViewById(R.id.textView1);
//文本框内容
String text=(String) txt.getText();
float value=Float.parseFloat(text);
System.out.println(value);
switch(btn.getId()){
case R.id.button1:
if(restart){
txt.setText("1");
txt.setText(text+"1");
case R.id.button2:
if(restart){
txt.setText("2");
txt.setText(text+"2");
case R.id.button3:
if(restart){
txt.setText("3");
txt.setText(text+"3");
case R.id.button4:
if(restart){
txt.setText("4");
txt.setText(text+"4");
case R.id.button5:
if(restart){
txt.setText("5");
txt.setText(text+"5");
case R.id.button6:
if(restart){
txt.setText("6");
txt.setText(text+"6");
case R.id.button7:
if(restart){
txt.setText("7");
txt.setText(text+"7");
case R.id.button8:
if(restart){
txt.setText("8");
txt.setText(text+"8");
case R.id.button9:
if(restart){
txt.setText("9");
txt.setText(text+"9");
case R.id.button10:
if(restart)
txt.setText("00");
txt.setText(text+"0");
case R.id.button11:
operator1=
case R.id.button12:
operator1=
case R.id.button13:
if(restart){
txt.setText("-");
else if(front==0){
txt.setText("-"+text);
else if(front==1){
txt.setText(text.substring(1));
case R.id.button14:
operator1=
case R.id.button15:
operator1=
case R.id.button16:
txt.setText("00");
case R.id.button17:
if(restart)
txt.setText(".");
txt.setText(text+".");
case R.id.button18:
switch(symbol){
txt.setText(String.valueOf(operator1+value));
txt.setText(String.valueOf(operator1-value));
txt.setText(String.valueOf(operator1*value));
txt.setText(String.valueOf(operator1/value));
txt.setText(String.valueOf(Math.pow(operator1, value)));
case R.id.button19:
operator1=
case R.id.button20:
txt.setText(String.valueOf(Math.sqrt(value)));
case R.id.button21:
txt.setText(String.valueOf(Math.sin(value)));
case R.id.button22:
txt.setText(String.valueOf(Math.cos(value)));
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具我想问一下做一个android计算器下怎么计算sin(x).cos(x)?【android开发吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:119,543贴子:
我想问一下做一个android计算器下怎么计算sin(x).cos(x)?收藏
我需要表达式运算,也就是sin(30)+1*(5-2)+cos(30),有人做过吗?利用算法和栈结构做的或者利用一些开源库做的都可以?请问A吧的各位大神,有人知道android下有这样的运算库么,还有可以将JavaScriptEngine放在android下使用吗?
android系统-让安卓系统刷机变得更简单,安全,快捷的android系统,搭配全图文刷机教程,全自动安装驱动,新版Android系统刷机工具免费下载!
大神,你们见多识广,给我支支招
没做过,不过js是可以在android里面调用的。
你查下java api里面是提供工具类实现了这些函数
登录百度帐号推荐应用如何利用计算机计算sin cos tan度数
我用A来表示那个角了sinAcosA(tanA+cotA)=sinAcosAtanA+sinAcosAcotA=sin²A+cos²A=1参考公式:cosAtanA=sinA sinAcotA=cosA
sin 30= 1/2sin 45=根号2/2sin 60= 根号3/2
sin35°=0.5736则cos55°=sin(90°-55°)=sin35°=0.5736用计算器的话先按cos键,再按55或者55,再按sin键,不同的计算器设置不一样
sin&&cos&&tan&&都是三角函数,是在直角三角形里的.比如:△ABC中,∠ACB=90°.∴sin∠B=AC/AB&&&sin∠A=BC/AB&&&sinα(0°<α°<90°)就是直角三角
如图所示,对于任意三角形都有:cosA=&(AB^2+AC^2-BC^2)/(2*AB*AC)&&&A=cos^-1((AB^2+AC^2-BC^2)/(2*AB*AC))这个需要知道三角形三条边的长度.tanB=&AH/BH&&&B=ta
可以利用我们知道的30°、45°、60°等特殊角来求得大概值.
上面他给你回答的对于你们现在用不上tana=sina/cosasin30=cos60=1/2sin45=cos45=√2/2sin60=cos30=√3/2tan30=√3/3tan45=1tan60=√3 再问: BT.我知道这些,,但是我要一些计算的简便方法比如sin²α+cos²α=1. 再答
sinA=a A= shift+sin+acosA=b A=shift+cos+btanA=c A=shift+tan+ccotA=d A=1/tan+d
这个人脑是无法计算的只能记住一些特殊值比如看到sinx=0.5,就想到x=30+360k,or 150+360k
sin30=1/2 sin45=2分之根号2 sin60=2分之根号3 sin90=1 sin120=2分之根号3 sin135=2分之根号2 sin150=1/2 180=0 270=-1 360=0 cos30=2分之根号3 cos45=2分之根号2 cos60=1/2 cos90=0 cos120=-1/2 co
建议你了解一下sin&cos&tan的定义,技巧:sin也称高度函数,&cos也称投影函数. 再问: 不就是 sin是直角三角形中该角的对边与斜边的比值; cos是直角三角形中该角的邻边与斜边的比值; tan是直角三角形中该角的对边与邻边的比值。 ? 这和力的计算有什么关系啊 ?帮帮我 谢
sin(正弦) 0° 30° 45° 60° 90° 180° 360° 0 1/2 根号2/2 根号3/2 1 0 0 cos(余弦) 0° 30° 45° 60° 90° 180° 360° 1 根号3/2 根号2/2 1/2 0 1 1 tan(正切) 0° 30° 45° 60° 90° 180° 360° 0
度数 30 45 60 90sin 1/2 根号2/2 根号3/2 1cos 根号3/2 根号2/2 1/2 0tan 根号3/3 1 根号3 不存在cot 根号3 1 根号3/3 0
如意工具箱,里面有此工具
∵cos(π+α)=-cosα∴-cosα=-1/2cosα=1/2∴α=π/3或α=-π/3sin(2π+α)-tan(α-3π)=sinα+tan(3π-α)=sinα+tan(2π+π-α)=sinα+tan(π-α)=sinα-tanα则当α=π/3时,sin(2π+α)-tan(α-3π)=sinπ/3-ta
tana=sina/cosa=3所以sina=3cosa又因为sina^2+cosa^2=1所以9cosa^2+cosa^2=10cosa^2=1所以cosa^2=0.1所以sinacosa=3cosacosa=3cosa^2=0.3
当然不是 对于初学者 只是用直角三角形来表示 便于理解和计算到了以后 会有计算不同角度 15 30 45 60 75 90 105 135 180会遇到各种公式 如 积化和差 和差化积 万能公式 余弦定理等等
sin30°=½ sin45°=根号2/2sin60°=根号3/2sin90°=0sin120°=½sin135°=根号2/2sin150°=根号3/2cos30°=根号3/2cos45°=根号2/2cos60°=½cos120°=—½cos135°=—根号2/2cos150°=
tanα=sinα/cosα=3sinα=3cosα----------1)sin²α+cos²α=1------2)解1),2)得sinα=3√10/10,cosα=√10/10或sinα=-3√10/10,cosα=-√10/10所以,sinαcosα=3/10 再问: 我是这样做的sinαco
2ndf是老式计算器上的名称,相当于新式计算器上的shift,就是切换的意思,即从一个功能切换到另一个功能.exp是指数函数,e的x次方mode运算模式del是删除,相当于电脑上的deletelog是以10为底的对数ln是以e为底的对数sin是正弦函数sinxcos是余弦函数cosxtan是正切函数tanxsto是赋值在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
列如:9.6 * 9
理应得到 86.4
结果是 86.
我知道好像是因为有些小数在计算机中的表示不是准确值,所以会出现这种情况。
但是我想得到 86.4 这样的结果,因为算出来的数不确定有几位小数,所以也不好设 double 小数点后的位数,求大神解答疑惑。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
继续推荐我的博客:
所以,使用 BigDecimal 类。
的回答。看过 JDK 文档和源码的都应该知道 Double.toString(9.6) 有很大的安全隐患。因为浮点数 9.6 本来就不是精确的。
正确的写法:
BigDecimal a = new BigDecimal("9.6"));
BigDecimal b = new BigDecimal("9"));
System.out.println("" + a.multiply(b));
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
java的float不是一个精确的数值,9.6只是一个无限接近于9.6的数。1.0也是一个无限接近于1.0的小数。
想要得到精确的数字我知道的可以用BigInteger,BigFloat这样的类来解决。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用BigDecimal
BigDecimal a = new BigDecimal(Double.toString(9.6));
BigDecimal b = new BigDecimal(Double.toString(9));
System.out.println("" + a.multiply(b));
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:【图片】【sin】【cos】计算器【红石电路吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:30,301贴子:
【sin】【cos】计算器收藏
展会时间:11月7日-11日 会议地点:上海青浦区崧泽大道333号国家会展中心
【功能演示】我们先来计算一个 sin(0°)和cos(0°)。再随便找几个数算算sin(23.6°)和cos(23.6°)sin(30°)和cos(30°)
sin(45°)和cos(45°)sin(65.89°)和cos(65.89°)最后sin(90°)和cos(90°)
【使用方法&说明】使用方法:(1)按清零按钮(2)按照图中位置输入想要计算的数字,输入的数字会立即显示在屏幕上,(比如图中输入的是85.55)(3)按开始计算按钮,大约等待65秒,sin和cos的值会显示在屏幕上。说明:(1)65秒包括:BCD转16bit定点小数(6.4秒),迭代15次计算三角函数(一次3.0秒),16bit定点小数转BCD(6.4秒),数据传输耗时,等。(2)只能输入0~90之间的数字。如果想计算其余范围请手动使用公式转换。(3)为了保证结果准确性,显示舍入后的3位小数,结果误差在±0.0005内。(4)输入的百分位几乎不会对结果产生影响。(5)计算方法为CORDIC算法。(6)地图中所有独立的红石灯为debug所用…(7)可能会有bug…(可能性比较小)
再来几张光影。高清图上传全变av画质
【俯视图】小数BCD-BIN ZL用的是把BCD数通过穷举的方法乘2然后如果最高位有进位,则二进制位对应1,否则为0电路中所有加法器用的都是“抽象版超前进位加法器”的改造版。为什么要改造…ZL实际测试发现,当加法器的一个输入端由0变1,另一个输入端由1变0的一瞬间,加法器内部产生一个1t脉冲,导致进位的活塞推出方块后不会拉回….虽然理论上可以计算信号到达加法器输入端的时间来避免这种现象发生,但是电路中有数据选择器,导致选择不同的数据延迟的时间又不一样,为了压缩电路又没地方加中继器统一延迟,所以zl就直接把金块上的红石线换成了2档中继器,屏蔽掉1t脉冲。省事又安心。
存档下载版本mc1.8.0 经测试在1.7.10也可以正常工作,其他版本没有测试。
触瞎了QAQ.......................还在努力学习中 赶紧下载存档研究
专业生产电机驱动电路.东芝品质 值得信赖!
奇变偶不变,符号看象限。下次加个诱导公式
完全佩服,我到现在连怎么算出三角比都要依赖计算器
继表达式计算器之后的三角函数计算器不过好像只能正弦余弦?
等等用的居然是cordic算法,这东西记得在物理吧精品看过,当时看到三角函数就捉急了
触另外迭代50次?三位精度要那么多么?
彻底被触吓
厉害!顶一个!
Coffee 要哭了
渣渣我已经被触瞎了
我要帮楼主召唤数电和机械大触!
@小兔子大萝卜
希望楼主能讲教程。QAQ
不错,话说我对浮点数一直不是很理解
不是用sin和cos的泰勒展开?不是用查表的方法?cordic算法求科普⊙▽⊙
这次没有视频QAQ
卧槽,sin cos 都有了 tan 呢。
登录百度帐号推荐应用}

我要回帖

更多关于 计算器sin怎么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信