calculator_flutter 0.0.4
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();
}
}