calculator_flutter 0.0.4 copy "calculator_flutter: ^0.0.4" to clipboard
calculator_flutter: ^0.0.4 copied to clipboard

A Package to simplify your calculations.

Calculator operations #

A simple Flutter package to calculate numbers.

You can perform operations in the following ways:

Calculator.add(double a, double b)
Calculator.sub(double a, double b)
Calculator.multiply(double a, double b)
Calculator.divide(double a, double b)
Calculator.power(double a, double b)
Calculator.square(double  a)
Calculator.cube(double a)
Calculator.squareRoot(double a)
Calculator.cubeRoot(double a)
Calculator.root(double a,double b)
Calculator.percent(double a,double b)

Installation #

Add this to your pubspec.yaml:

dependencies:
  calculator_flutter: ^1.0.0
import 'package:flutter/material.dart';
import 'calculator_flutter.dart'; 

class CalculatorUI extends StatefulWidget {
  const CalculatorUI({super.key});

  @override
  CalculatorUIState createState() => CalculatorUIState();
}

class CalculatorUIState extends State<CalculatorUI> {
  String display = "0";
  double? num1;
  double? num2;
  String? operator;

  void buttonPressed(String text) {
    setState(() {
      if (text == "C") {
        display = "0";
        num1 = num2 = null;
        operator = null;
      } else if (["+", "-", "×", "÷", "^", "√", "∛", "%"].contains(text)) {
        operator = text;
        num1 = double.tryParse(display);
        display = "0";
      } else if (text == "=") {
        num2 = double.tryParse(display);
        if (num1 != null && operator != null) {
          switch (operator) {
            case "+":
              display = Calculator.add(num1!, num2!).toString();
              break;
            case "-":
              display = Calculator.sub(num1!, num2!).toString();
              break;
            case "×":
              display = Calculator.multiply(num1!, num2!).toString();
              break;
            case "÷":
              display = Calculator.divide(num1!, num2!).toString();
              break;
            case "^":
              display = Calculator.power(num1!, num2!).toString();
              break;
            case "√":
              display = Calculator.squareRoot(num1!).toString();
              break;
            case "∛":
              display = Calculator.cubeRoot(num1!).toString();
              break;
            case "%":
              display = Calculator.percent(num1!, num2!).toString();
              break;
          }
        }
        operator = null;
      } else {
        display = display == "0" ? text : display + text;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title:const Text("Advanced Calculator"),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        children: [
          Expanded(
            child: Container(
              alignment: Alignment.bottomRight,
              padding:const EdgeInsets.all(20),
              child: Text(
                display,
                style:const TextStyle(fontSize: 48, fontWeight: FontWeight.bold),
              ),
            ),
          ),
          ..._buildKeypad()
        ],
      ),
    );
  }

  List<Widget> _buildKeypad() {
    const keys = [
      ["7", "8", "9", "÷"],
      ["4", "5", "6", "×"],
      ["1", "2", "3", "-"],
      ["C", "0", "=", "+"],
      ["√", "∛", "^", "%"],
    ];

    return keys.map((row) {
      return Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: row.map((key) {
          return ElevatedButton(
            onPressed: () => buttonPressed(key),
            style: ElevatedButton.styleFrom(
              padding:const EdgeInsets.all(16),
              minimumSize:const Size(64, 64),
            ),
            child: Text(key, style:const TextStyle(fontSize: 24)),
          );
        }).toList(),
      );
    }).toList();
  }
}
5
likes
120
points
24
downloads

Publisher

unverified uploader

Weekly Downloads

A Package to simplify your calculations.

Homepage
Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on calculator_flutter