C# 为什么我在尝试将double转换为float时出错?

C# 为什么我在尝试将double转换为float时出错?,c#,C#,我把双精度转换成浮点型有点问题。代码: float volume = 0.5; Double i = Volume.Value; volume = (float)i / 100F; Bass.BASS_SetVolume(volume); 正如你所看到的,我正在使用BASS库。音量是一个滑块,它给我一个从1到100的值。问题是,我得到了这个错误: 错误CS0664:无法将double类型的文本隐式转换为float类型;使用“F”后缀创建此类型的文字 为什么会出现这个错误 float volum

我把双精度转换成浮点型有点问题。代码:

float volume = 0.5;
Double i = Volume.Value;
volume = (float)i / 100F;
Bass.BASS_SetVolume(volume);
正如你所看到的,我正在使用BASS库。音量是一个滑块,它给我一个从1到100的值。问题是,我得到了这个错误:

错误CS0664:无法将double类型的文本隐式转换为float类型;使用“F”后缀创建此类型的文字

为什么会出现这个错误

float volume = 0.5;
这一行会告诉你你的错误。默认情况下,浮点是
double
,因此它不能隐式地将
0.5
转换为浮点。尝试改用
0.5f


这一行会告诉你你的错误。默认情况下,浮点是
double
,因此它不能隐式地将
0.5
转换为浮点。尝试改用
0.5f

volume
被定义为
double
。你“放入”一个浮点数并不重要,它将被转换回一个
双精度
(隐式)。音量被定义为浮点数。即使没有“/100F”,它也会给我同样的错误信息。
volume
被定义为
double
。你“放入”一个浮点数并不重要,它将被转换回一个
双精度
(隐式)。音量被定义为浮点数。即使没有“/100F”,它也会给我相同的错误消息。这看起来是问题的解决方案。+1这是正确的。OP最初省略了这一行以及导致错误的行的信息。这似乎是问题的解决方案。+1这是正确的。OP最初省略了这一行以及导致错误的行的信息。