标签: calculator

计算器如何精确工作?

我想知道计算器如何精确地工作.例如,sin(M_PI)当以double精度计算时,值不完全为零:

#include <math.h>
#include <stdio.h>

int main() {
    double x = sin(M_PI);
    printf("%.20f\n", x); // 0.00000000000000012246
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我肯定想在用户输入sin(π)时打印零.我可以轻松地在1e-15的某个地方绕过来使这个特殊情况起作用,但这是一个黑客,而不是解决方案.当我开始像这样循环并且用户输入类似1e-20的东西时,他们得到零回归(因为四舍五入).当用户输入1/10并=重复点击键时会发生同样的事情- 当他达到舍入阈值时,他会得到零.

然而,有些计算器为sin(π)返回纯零,同时它们可以舒适地处理诸如(1e-20)/ 10之类的表达式.诀窍在哪里?

floating-point precision calculator

8
推荐指数
1
解决办法
2935
查看次数

这个程序员是如何在游戏中实现这个计算器的?

链接到此处:YouTube视频

我很好奇,想了很久,现在我不知道这个男人是怎么把它拉下来的.我只是看到杠杆和线程随机进入齿轮,所以看起来.

有人可以为我们好奇的极客们带来一些启示.:)

algorithm calculator

8
推荐指数
1
解决办法
458
查看次数

如何从应用程序调用Android计算器

我想从我的应用程序中调用android计算器.我不想传递任何东西,只需提供一个快速启动按钮.任何人都可以告诉我如何或指出我如何做到这一点的例子?

android calculator invoke

8
推荐指数
1
解决办法
6768
查看次数

Java中的基本计算器

我正在尝试创建一个基本calculatorJava.我对编程很陌生,所以我试着习惯它.

import java.util.Scanner;
import javax.swing.JOptionPane;

public class javaCalculator 
{

    public static void main(String[] args) 
    {
        int num1;
        int num2;
        String operation;


        Scanner input = new Scanner(System.in);

        System.out.println("please enter the first number");
        num1 = input.nextInt();

        System.out.println("please enter the second number");
        num2 = input.nextInt();

        Scanner op = new Scanner(System.in);

        System.out.println("Please enter operation");
        operation = op.next();

        if (operation == "+");
        {
            System.out.println("your answer is" + (num1 + num2));
        }
        if  (operation == "-");
        {
            System.out.println("your answer is" + (num1 …
Run Code Online (Sandbox Code Playgroud)

java calculator

7
推荐指数
2
解决办法
27万
查看次数

如何在JFrame中排列多个面板

我正在尝试制作一个简单的计算器来练习图形(我是一个完整的GUI菜鸟).我在使用Polyashenkos校准器和文本区域以及文本区域和按钮之间的空间后有不必要的空间时遇到一些问题.另外,我如何保持这种布局,但消除空间,并使底部3按钮更小.关于我正在做什么或如何做得更好的任何提示将非常感激.谢谢.

在此输入图像描述

import javax.swing.*;
import java.awt.*;

public class calculator {

    public static void main(String[] args) {
        // creates the JFrame(a window with decorations)
        JFrame frame = new JFrame("Calculator"); 
        // stops the program when window is closed
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        frame.setSize(377, 350);

        // the main panel of the JFrame, 
        // remembet you cant add content directly to JFrame
        JPanel content = new JPanel(new GridLayout(4, 0)); 
        // panel for the text field
        JPanel textarea = new JPanel(new GridLayout(4, 0)); 
        // panel for the buttons, 
        // …
Run Code Online (Sandbox Code Playgroud)

java swing calculator jpanel layout-manager

7
推荐指数
1
解决办法
2万
查看次数

Swift中的十进制到分数转换

我正在构建一个计算器,并希望它自动将每个小数转换为分数.因此,如果用户计算答案为"0.333333 ..."的表达式,则返回"1/3".对于"0.25",它将返回"1/4".使用GCD,如此处所示(十进制到分数转换),我已经想出如何将任何有理的终止十进制转换为十进制,但这对任何重复的小数都不起作用(如.333333).

堆栈溢出的每个其他函数都在Objective-C中.但我需要一个快速应用程序中的功能!所以这个(/sf/answers/940116621/)的翻译版本会很棒!

关于如何将有理数或重复/无理小数转换为分数(即将"0.1764705882 ..."转换为3/17)的任何想法或解决方案都会很棒!

calculator fractions ios swift swift2

7
推荐指数
1
解决办法
4161
查看次数

C++简单操作(+, - ,/,*)评估类

我正在寻找一个C++类,我可以将其纳入我正在进行的项目中.我需要的功能是将字符串操作评估为数字形式:例如"2 + 3*7"应评估为23.

我确实意识到我所要求的是一种翻译,并且有一些工具来构建它们,我在CS中的背景非常差,所以如果你能指出我已经准备好的课程,我将不胜感激.

c++ calculator

6
推荐指数
1
解决办法
3301
查看次数

如何通过BIOS中断在实模式下处理键盘?

我必须为我可以运行计算器的操作系统编写代码.它就像一个桌面计算器.为此,我正在阅读我已经完成第二阶段bootloaderbreaknthorn操作开发系列引导加载程序处于实模式.在此之后,作者正在解释保护模式.我不想使用保护模式.我没有时间.所以我想通过使用bios中断在实模式下编写计算器.可能吗?我认为它可以写在引导程序的第二阶段(我不确定.)意味着我不必使用内核(我不确定).我不知道如何使用BIOS中断来处理键盘.任何人都可以给我一个链接来帮助我吗?如果我认为上面的任何错误是错误的,请纠正我.谢谢.

x86 assembly operating-system calculator bootloader

6
推荐指数
2
解决办法
6601
查看次数

后缀计算器Java

好的,我必须从文件中读取后缀表达式.后缀表达式必须具有空格以分隔每个运算符或操作数.到目前为止,只有在输入文件中的运算符或操作数之间没有空格时,我才能使用它.(即如果文件有12+,我得到的结果是3.)为了做到这一点,我认为我需要对输入进行标记化,但我不确定如何.这就是我到目前为止所拥有的.感谢您的回复.

import java.util.*;
import java.io.*;
public class PostfixCalc{
public static void main (String [] args) throws Exception {
File file = new File("in.txt");
Scanner sc = new Scanner(file);
String input = sc.next();
Stack<Integer> calc = new Stack<Integer>();
while(sc.hasNext()){
for(int i = 0; i < input.length(); i++){
    char c = input.charAt(i);
    int x = 0;
    int y = 0;
    int r = 0;
    if(Character.isDigit(c)){
       int t = Character.getNumericValue(c);
        calc.push(t);
    }
    else if(c == '+'){
        x = calc.pop();
        y = calc.pop();
        r …
Run Code Online (Sandbox Code Playgroud)

java stack calculator postfix-notation

6
推荐指数
1
解决办法
3万
查看次数

为什么postfix(rpn)符号比前缀更常用?

通过使用我的意思是它在许多计算器如HP35-中使用

我的猜测(和混淆)是 -

  1. postfix实际上是更高效的内存 - (所以在这里发表评论).(混淆 - 两者的评估算法与堆栈类似)
  2. 当时计算器中的键盘输入类型(混淆 - 这应该不重要,因为它只取决于第一个或最后一个给定的运算符的顺序)

可以问这个问题的另一种方式是后缀表示法优于前缀的优点是什么?
任何人都可以开导我吗?

algorithm calculator postfix-notation polish-notation

6
推荐指数
1
解决办法
1620
查看次数