为什么我的 float 变量语句一直给我一个 'Cannot implicitly convert type double to float' 错误?
why does my float variable statement keeps on giving me an 'Cannot implicitly convert type double to float' error?
出于某种原因,我的代码中不断出现 'Cannot implicitly convert type double to float' 错误。我加粗并在我的代码中出现错误的确切位置留下了评论。我似乎无法弄清楚问题是什么。我将数据类型全部切换为 'double' 而不是 'float' 并且程序顺利 运行 没有错误。有人可以告诉我我做错了什么或代码中缺少什么吗? (编辑:粗体似乎不适用于我在该站点上的代码)。
问题是,当您执行乘法(或其他算术运算)时,您使用的是诸如 0.15 之类的文字。默认情况下,此值将被编译器视为双精度数,因此当与浮点数相乘时,它会产生更大的双精度结果。要解决此问题,您需要将文字标记为 .15f,以便将它们视为浮点文字。
除了 Phil 的建议之外,您还应该使用 float.TryParse 而不是 float.Parse 否则,如果用户输入无效文本,您可能会遇到 FormatException
float value;
if (float.TryParse(text, out value))
{
// Parse success..
}
else
{
// Parse failed...
}
出于某种原因,我的代码中不断出现 'Cannot implicitly convert type double to float' 错误。我加粗并在我的代码中出现错误的确切位置留下了评论。我似乎无法弄清楚问题是什么。我将数据类型全部切换为 'double' 而不是 'float' 并且程序顺利 运行 没有错误。有人可以告诉我我做错了什么或代码中缺少什么吗? (编辑:粗体似乎不适用于我在该站点上的代码)。
问题是,当您执行乘法(或其他算术运算)时,您使用的是诸如 0.15 之类的文字。默认情况下,此值将被编译器视为双精度数,因此当与浮点数相乘时,它会产生更大的双精度结果。要解决此问题,您需要将文字标记为 .15f,以便将它们视为浮点文字。
除了 Phil 的建议之外,您还应该使用 float.TryParse 而不是 float.Parse 否则,如果用户输入无效文本,您可能会遇到 FormatException
float value;
if (float.TryParse(text, out value))
{
// Parse success..
}
else
{
// Parse failed...
}