Search code examples
flutterdartmathoperation

How to do math operations in flutter?


It seems easy, but I get always 0 when i run the math operations in my flutter app. I did the same in Java with success, but i'm sure it is slightly different in flutter. Basically, after run the operation, the button will execute the add method and put the result on a textfield.

Something i also don't get it, if my variables are defined as double, why then i need to say again "ris1 = (q1 ~/ sum) as double;" ?

I am trying to run this:( i just wrote the essential code, because it is too big)

class _CalcolaWState extends State<CalcolaW> {


TextEditingController _textEditingController = TextEditingController();

double q1 = 0, q2 = 0, f1 = 0, f2=0;
double sum = 0, ris1=0, ris2 = 0, ris3 = 0, ris4= 0, ris5=0;

add() {
setState((){
    f1 = double.parse(_textEditingController.text);
    q1 = double.parse(_textEditingController2.text);
    f2 = double.parse(_textEditingController3.text);
    q2 = double.parse(_textEditingController4.text);

    sum = (q1 + q2);
      
    ris1 = (q1 ~/ sum) as double;
      
    ris2 = (q2 ~/ sum) as double;

    ris3 = f1 * ris1;
    ris4 = f2 * ris2;
    ris5 = ris3 + ris4;

    });
    }
    CupertinoTextField(
        padding: EdgeInsets.all(12),
        keyboardType: TextInputType.number,
        controller: _textEditingController,
        placeholder: 'Enter 1st Flour Strenght ' ,
        placeholderStyle: TextStyle(color: cursorColor),
        ),
    ),
    ElevatedButton(
        child: Text("Calculate"),
        style: ElevatedButton.styleFrom(
        primary: Colors.green,
        ),
        onPressed: (){
        add();
        _controller.text = '$ris5';
        print(ris5);
        }

Solution

  • ~/ operator returns integer, use / for double

    ~/ Divide, returning an integer result

    See Arithmetic operators.