diff --git a/src/audio_colorscheme.cpp b/src/audio_colorscheme.cpp
index 80f35a15d77db2a7dc016f6c6d07a9d5c62cb305..a7a1142c9fbf33256fd523e28421838a1b832c57 100644
--- a/src/audio_colorscheme.cpp
+++ b/src/audio_colorscheme.cpp
@@ -58,7 +58,7 @@ AudioColorScheme::AudioColorScheme(int prec, std::string const& scheme_name, int
 
 	for (size_t i = 0; i <= factor; ++i)
 	{
-		float t = (float)i / factor;
+		auto t = (double)i / factor;
 		hsl_to_rgb(
 			mid<int>(0, h_base + t * h_scale, 255),
 			mid<int>(0, s_base + t * s_scale, 255),
diff --git a/src/audio_renderer_spectrum.cpp b/src/audio_renderer_spectrum.cpp
index 9b14e81e25c5ba8439cc5a273a5dc5bfc6b6b2af..9d79feaa8634b0988e99886bd2b240601e3cc008 100644
--- a/src/audio_renderer_spectrum.cpp
+++ b/src/audio_renderer_spectrum.cpp
@@ -178,7 +178,7 @@ void AudioSpectrumRenderer::FillBlock(size_t block_index, float *block)
 
 	fftw_execute(dft_plan);
 
-	float scale_factor = 9 / sqrt(2 * (float)(2<<derivation_size));
+	double scale_factor = 9 / sqrt(2 << (derivation_size + 1));
 
 	fftw_complex *o = dft_output;
 	for (size_t si = 1<<derivation_size; si > 0; --si)
@@ -253,7 +253,7 @@ void AudioSpectrumRenderer::Render(wxBitmap &bmp, int start, AudioRenderingStyle
 			{
 				assert(px >= imgdata);
 				assert(px < imgdata + imgheight*stride);
-				float ideal = (float)(y+1.)/imgheight * (maxband-minband) + minband;
+				auto ideal = (double)(y+1.)/imgheight * (maxband-minband) + minband;
 				float sample1 = power[(int)floor(ideal)+minband];
 				float sample2 = power[(int)ceil(ideal)+minband];
 				float frac = ideal - floor(ideal);
diff --git a/src/colorspace.cpp b/src/colorspace.cpp
index 2d9df415ca67a1be8b3ed538cac514386b9e9f44..bd3dafd68078617e967d79029f821853f44735b2 100644
--- a/src/colorspace.cpp
+++ b/src/colorspace.cpp
@@ -92,8 +92,8 @@ void hsl_to_rgb(int H, int S, int L, unsigned char *R, unsigned char *G, unsigne
 	l = L / 255.f;
 
 	float temp2;
-	if (l < .5) {
-		temp2 = l * (1. + s);
+	if (l < .5f) {
+		temp2 = l * (1.f + s);
 	} else {
 		temp2 = l + s - l*s;
 	}
@@ -257,7 +257,7 @@ void rgb_to_hsl(int R, int G, int B, unsigned char *H, unsigned char *S, unsigne
 		h = 0;
 		s = 0;
 	} else {
-		if (l < 0.5) {
+		if (l < .5f) {
 			s = (maxrgb - minrgb) / (maxrgb + minrgb);
 		} else {
 			s = (maxrgb - minrgb) / (2.f - maxrgb - minrgb);
diff --git a/src/gl_wrap.cpp b/src/gl_wrap.cpp
index a7eb769f678a48b92ab3d594ff147c4a451827fb..66e5829583da2e5f584a03bc636197ef1c5cf985 100644
--- a/src/gl_wrap.cpp
+++ b/src/gl_wrap.cpp
@@ -131,12 +131,12 @@ void OpenGLWrapper::DrawRectangle(Vector2D p1, Vector2D p2) const {
 	buf.Set(3, Vector2D(p1, p2));
 
 	// Fill
-	if (fill_a != 0.0) {
+	if (fill_a != 0.f) {
 		SetModeFill();
 		buf.Draw(GL_QUADS, false);
 	}
 	// Outline
-	if (line_a != 0.0) {
+	if (line_a != 0.f) {
 		SetModeLine();
 		buf.Draw(GL_LINE_LOOP);
 	}
@@ -149,12 +149,12 @@ void OpenGLWrapper::DrawTriangle(Vector2D p1, Vector2D p2, Vector2D p3) const {
 	buf.Set(2, p3);
 
 	// Fill
-	if (fill_a != 0.0) {
+	if (fill_a != 0.f) {
 		SetModeFill();
 		buf.Draw(GL_TRIANGLES, false);
 	}
 	// Outline
-	if (line_a != 0.0) {
+	if (line_a != 0.f) {
 		SetModeLine();
 		buf.Draw(GL_LINE_LOOP);
 	}
@@ -183,7 +183,7 @@ void OpenGLWrapper::DrawRing(Vector2D center, float r1, float r2, float ar, floa
 	Vector2D scale_inner = Vector2D(ar, 1) * r1;
 	Vector2D scale_outer = Vector2D(ar, 1) * r2;
 
-	if (fill_a != 0.0) {
+	if (fill_a != 0.f) {
 		SetModeFill();
 
 		// Annulus
@@ -210,7 +210,7 @@ void OpenGLWrapper::DrawRing(Vector2D center, float r1, float r2, float ar, floa
 		cur_angle = arc_start;
 	}
 
-	if (line_a == 0.0) return;
+	if (line_a == 0.f) return;
 
 	// Outer
 	steps++;
diff --git a/src/video_display.cpp b/src/video_display.cpp
index 620869b50ddb1ae6736859232235f3f0cf6c29c5..7a3931890cb2e26fbc41b4f413bc5a93fd5ebefe 100644
--- a/src/video_display.cpp
+++ b/src/video_display.cpp
@@ -282,13 +282,13 @@ void VideoDisplay::PositionVideo() {
 		double videoAr = arType == AspectRatio::Default ? double(vidW) / vidH : con->videoController->GetAspectRatioValue();
 
 		// Window is wider than video, blackbox left/right
-		if (displayAr - videoAr > 0.01f) {
+		if (displayAr - videoAr > 0.01) {
 			int delta = viewport_width - videoAr * viewport_height;
 			viewport_left = delta / 2;
 			viewport_width -= delta;
 		}
 		// Video is wider than window, blackbox top/bottom
-		else if (videoAr - displayAr > 0.01f) {
+		else if (videoAr - displayAr > 0.01) {
 			int delta = viewport_height - viewport_width / videoAr;
 			viewport_top = viewport_bottom = delta / 2;
 			viewport_height -= delta;