gpt4 book ai didi

dart - Dart 中如何进行整数除法?

转载 作者:行者123 更新时间:2023-12-03 00:30:17 26 4
gpt4 key购买 nike

我在 Dart 中进行整数除法时遇到了问题,因为它给了我错误:“异常中断:类型‘double’不是‘c’的类型‘int’的子类型。” p>

以下代码:

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

c = a / b; // <-- Gives warning in Dart Editor, and throws an error in runtime.

正如你所见,我期望结果应该是2,或者说,即使'a'或'b'的除法会得到浮点/ double 值的结果,它也应该直接转换为整数值,而不是像那样抛出错误。

我有一个使用 .round()/.ceil()/.floor() 的解决方法,但这在我的程序中是不够的,这个小操作至关重要,因为它在一场游戏中被调用数千次更新(或者你可以在 requestAnimationFrame 中说)。

我还没有找到任何其他解决方案,有什么想法吗?谢谢。

Dart 版本:1.0.0_r30798

最佳答案

这是因为 Dart 使用 double 来表示 dart2js 中的所有数字。如果你这样做的话,你会得到有趣的结果:

代码:

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

结果:

true
true

实际上,当涉及到数字时,建议使用 num 类型,除非您有充分的理由将其设为 int(例如,在 for 循环中)。如果您想继续使用 int,请使用截断除法,如下所示:

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

c = a ~/ b;

否则,我建议使用 num 类型。

关于dart - Dart 中如何进行整数除法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com