create calculator in flutter, four button with operator and calculate according to sign

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'calcluate',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const SumPage(),
    );
  }
}

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

  @override
  State<SumPage> createState() => _SumPageState();
}

class _SumPageState extends State<SumPage> {
  final TextEditingController _num1Controller = TextEditingController();
  final TextEditingController _num2Controller = TextEditingController();
  final TextEditingController _sumController = TextEditingController();

  void _calculateSum() {
    final String num1Text = _num1Controller.text.trim();
    final String num2Text = _num2Controller.text.trim();

    if (num1Text.isEmpty || num2Text.isEmpty) {
      _sumController.text = "Enter numbers";
      return;
    }

    final double? num1 = double.tryParse(num1Text);
    final double? num2 = double.tryParse(num2Text);

    if (num1 == null || num2 == null) {
      _sumController.text = "Invalid input";
      return;
    }

    final double sum = num1 + num2;
    _sumController.text = sum.toString();
  }


 void _calculateSub() {
    final String num1Text = _num1Controller.text.trim();
    final String num2Text = _num2Controller.text.trim();

    if (num1Text.isEmpty || num2Text.isEmpty) {
      _sumController.text = "Enter numbers";
      return;
    }

    final double? num1 = double.tryParse(num1Text);
    final double? num2 = double.tryParse(num2Text);

    if (num1 == null || num2 == null) {
      _sumController.text = "Invalid input";
      return;
    }

    final double sum = num1 - num2;
    _sumController.text = sum.toString();
  }

 void _calculateMul() {
    final String num1Text = _num1Controller.text.trim();
    final String num2Text = _num2Controller.text.trim();

    if (num1Text.isEmpty || num2Text.isEmpty) {
      _sumController.text = "Enter numbers";
      return;
    }

    final double? num1 = double.tryParse(num1Text);
    final double? num2 = double.tryParse(num2Text);

    if (num1 == null || num2 == null) {
      _sumController.text = "Invalid input";
      return;
    }

    final double sum = num1 * num2;
    _sumController.text = sum.toString();
  }

 void _calculateDiv() {
    final String num1Text = _num1Controller.text.trim();
    final String num2Text = _num2Controller.text.trim();

    if (num1Text.isEmpty || num2Text.isEmpty) {
      _sumController.text = "Enter numbers";
      return;
    }

    final double? num1 = double.tryParse(num1Text);
    final double? num2 = double.tryParse(num2Text);

    if (num1 == null || num2 == null) {
      _sumController.text = "Invalid input";
      return;
    }

    final double sum = num1 / num2;
    _sumController.text = sum.toString();
  }
void _calculatepercentage() {
    final String num1Text = _num1Controller.text.trim();
    final String num2Text = _num2Controller.text.trim();

    if (num1Text.isEmpty || num2Text.isEmpty) {
      _sumController.text = "Enter numbers";
      return;
    }

    final double? num1 = double.tryParse(num1Text);
    final double? num2 = double.tryParse(num2Text);

    if (num1 == null || num2 == null) {
      _sumController.text = "Invalid input";
      return;
    }

    final double sum = num1 % num2;
    _sumController.text = sum.toString();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Subtract of Two Numbers")),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _num1Controller,
              keyboardType: TextInputType.number,
              decoration: const InputDecoration(
                labelText: "Enter first number",
                border: OutlineInputBorder(),
              ),
            ),
            const SizedBox(height: 12),
            TextField(
              controller: _num2Controller,
              keyboardType: TextInputType.number,
              decoration: const InputDecoration(
                labelText: "Enter second number",
                border: OutlineInputBorder(),
              ),
            ),
            const SizedBox(height: 12),
            ElevatedButton(
              onPressed: _calculateSum,
              child: const Text("+"),
            ),            const SizedBox(height: 12),
            ElevatedButton(
              onPressed: _calculateSub,
              child: const Text("-"),
            ),            const SizedBox(height: 12),
            ElevatedButton(
              onPressed: _calculateMul,
              child: const Text("*"),
            ),            const SizedBox(height: 12),
            ElevatedButton(
              onPressed: _calculateDiv,
              child: const Text("/"),
            ),
ElevatedButton(
              onPressed: _calculatepercentage,
              child: const Text("%"),
            ),




            const SizedBox(height: 12),
            TextField(
              controller: _sumController,
              readOnly: true,
              decoration: const InputDecoration(
              
                border: OutlineInputBorder(),
              ),
            ),
          ],
        ),
      ),
    );
  }
}



Leave a Reply