如何将字符串(位置)转换为int?

时间:2019-06-25 12:21:47

标签: c#

我收到编译错误:无法将类型'string'隐式转换为'int'

{
    public Transform player;
    public Text scoreText;

    // Update is called once per frame
    void Update()
    {
        int score = player.position.z.ToString("0");
        scoreText.text = score.ToString();
    }
}

2 个答案:

答案 0 :(得分:0)

player.position.zfloat(请参阅Vector3的{​​{3}})。因此,现在您正在尝试将此float转换为int,但是您正在使用toString()方法将其float转换为string 。这不起作用,因为您无法将int的值设置为string之一。

您可以通过强制转换将浮点数转换为整数:

int score = (int) player.position.z;

或者使用Unity(documentation)中的舍入方法:

int score = Mathf.RoundToInt(player.position.z)

答案 1 :(得分:0)

我猜您正在使用Unity。 z是浮点数。您要尝试执行的操作是获取该float并将其转换为字符串。然后将其转换为int,然后再次将其转换为字符串。

由于您需要的是字符串,因此可以直接从float转到这样的字符串:

{
    public Transform player;
    public Text scoreText;

    // Update is called once per frame
    void Update()
    {
        scoreText.text = player.position.z.ToString("0");
    }
}