将int除法转换为float(f)

时间:2014-05-16 23:26:55

标签: c# floating-point media-player

我使用MediaPlayer播放声音,更改您必须设置音量属性值的浮点值。 (示例显示0.5f作为设置)。

我的音量设置是基于百分比的,如何将我说的80%音量转换为0.5f以设置音量。我的代码:

float volume = (Program.EffectsVolumeSlider.Percent > 0 ? Convert.ToSingle(Program.EffectsVolumeSlider.Percent / 100) : 0.0f);

this.FireballSound.Volume = volume;
this.IceSound.Volume = volume;
this.SmokeSound.Volume = volume;

Program.EffectsVolumeSlider.Percent为55时,这会将音量输出为0.0?

2 个答案:

答案 0 :(得分:2)

您的代码使用整数除法:

55 / 100 

总是将返回0,因为该除法的整数部分为0.您需要将一个或多个操作数强制转换为float,最简单的方法是:

Program.EffectsVolumeSlider.Percent / 100.0f

这会强制浮点除法,它将返回正确的值(.55)

答案 1 :(得分:0)

float EffectsVolumeSliderPercent = 55.0f;
float volume = EffectsVolumeSliderPercent > 0.0f ? EffectsVolumeSliderPercent / 100.0f : 0.0f;
Console.WriteLine(volume);
Console.ReadLine();

result