Integer division in Dart - type 'double' is not a subtype of type 'int'

前端 未结 3 1206
孤街浪徒
孤街浪徒 2020-12-16 09:54

I have trouble with integer division in Dart as it gives me error: \'Breaking on exception: type \'double\' is not a subtype of type \'int\' of \'c\'.\'

Her

3条回答
  •  猫巷女王i
    2020-12-16 10:12

    That is because Dart uses double to represent all numbers in dart2js. You can get interesting results, if you play with that:

    Code:

    int a = 1; 
    a is int; 
    a is double;
    

    Result:

    true
    true
    

    Actually, it is recommended to use type num when it comes to numbers, unless you have strong reasons to make it int (in for loop, for example). If you want to keep using int, use truncating division like this:

    int a = 500;
    int b = 250;
    int c;
    
    c = a ~/ b;
    

    Otherwise, I would recommend to utilize num type.

提交回复
热议问题