首页 > 解决方案 > 错误 CS0664:对于非数字文本,无法将 double 类型的文字隐式转换为“float”类型

问题描述

对于看似随机的代码行,我收到“错误 CS0664:无法将 double 类型的文字隐式转换为“float”类型。详细地说,第 17 行出现了错误。当我删除它时,第 16 行得到错误,第 15 行得到错误,依此类推。

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace TutorialMod.Projectiles {
    public class SwordProjectile : ModProjectile {
        public override void SetDefaults() {
            projectile.width = 40;
            projectile.height = 1;
            projectile.friendly = true;
            projectile.melee = true;
            projectile.tileCollide = true;//15
            projectile.penetrate = 2;//16
            projectile.timeLeft = 100;//17
            projectile.light = 0.75;
            projectile.extraUpdates = 1;
            projectile.ignoreWater = true;
        }
        public override void AI() {
            projectile.rotation = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.75f;
        }
    }
}

标签: c#

解决方案


改变

projectile.light = 0.75;

projectile.light = 0.75f;.

这样你就告诉编译器它是一个float值。不带后缀字符意味着它是一个double,这就是你得到这个错误的时候。


推荐阅读