Python浮点数除法:Unity不使用除法计算浮点数(unity float)

我试图在 Unity 中做一些事情来找到一个数字的倍数。我试图找到这个的方式是我有一个 for 循环通过数字,如果数字 / i 等于 Mathf.Round(number / i),那么我把它算作一个倍数,但是,它只是计算每一个数字,当我尝试调试时。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AIpatternPredict : MonoBehaviour
{
    public List<int> attacks = new List<int>();
    public int lowerScore;
    void Start()
    {
        List<int> multiples = new List<int>();
        for (var i = 1; i < attacks.Capacity; i++)
        {
            float g = attacks.Capacity / i;
            Debug.Log(g);
            if (Mathf.Round(g) == g)
            {
                multiples.Add(i);
            }
        }
    }
}
1
float g = attacks.Capacity / i;

你的attacks.Capacity是一个inti是一个int

更改为float g = (float) attacks.Capacity / i;将其更改为带有浮点数的除法,此技巧称为类型强制转换,您可以在此处阅读更多内容:s://learn.microsoft/en-us/dotnet/csharp/programming-guide/types/casting-and-type-conversions

1

要比较一个 int 是否是另一个的倍数,请使用余数(mod)运算符。

4 % 1 = 0,4 / 1 的余数。4 % 2 = 0,4 % 3 = 1,4 % 4 = 0。

因此,如果余数 = = 0,则第二个数字是第一个数字的倍数。

        if ((attacks.Capacity % i) == 0)
        {
            multiples.Add(i);
        }

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(756)
建站免费服务器:免费数据库服务器(free database server)
上一篇
研究生复试数据库面试题:MATLAB面试题
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(77条)