diff --git a/bench/kernel/lms/ChangeLog.txt b/bench/kernel/lms/ChangeLog.txt
index 76b1ded4f9c9b9005b74b3e2ca7f744adb7d4d76..0e88d8b2e2daf758d01d5937b3d09baebccb7770 100644
--- a/bench/kernel/lms/ChangeLog.txt
+++ b/bench/kernel/lms/ChangeLog.txt
@@ -10,3 +10,4 @@ Original provenience: C Algorithms for Real-Time DSP by Paul M. Embree, pp. 159,
     * Output printed to stdout but was not checked for correctness
     * lms() used static variables for internal state
 - Completely rewritten and published with ISC license
+- Replaced double constants using exponent notation by numerical constant.
diff --git a/bench/kernel/lms/lms.c b/bench/kernel/lms/lms.c
index 4b93e2f85292ee6f46dc207fa1332be0342d5df2..5e45919b02bc8e0b3dc52bc8e6f49aa066decc19 100644
--- a/bench/kernel/lms/lms.c
+++ b/bench/kernel/lms/lms.c
@@ -66,7 +66,7 @@ double lms_sinus( int i )
 {
   int s = i % ( 4 * SAMPLING );
   if ( s >= ( 2 * SAMPLING ) )
-    return -lms_sintab[( s > 3 * SAMPLING ) ? 
+    return -lms_sintab[( s > 3 * SAMPLING ) ?
       ( 4 * SAMPLING - s ) : ( s - 2 * SAMPLING )];
   return lms_sintab[( s > SAMPLING ) ? ( 2 * SAMPLING - s ) : s];
 }
@@ -81,12 +81,13 @@ void lms_init( void )
   _Pragma( "loopbound min 101 max 101" )
   for ( k = 0 ; k < N ; k += 2 ) {
     double v1, v2, r;
+    const double scaleFactor = 0.000000000931322574615478515625;
     do {
       // generate two random numbers between -1.0 and +1.0
       seed = seed * 1103515245 + 12345;
-      v1 = ( seed & 0x00007fffffff ) * 0x1p-30 - 1.0;
+      v1 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
       seed = seed * 1103515245 + 12345;
-      v2 = ( seed & 0x00007fffffff ) * 0x1p-30 - 1.0;
+      v2 = ( seed & 0x00007fffffff ) * scaleFactor - 1.0;
       r = v1 * v1 + v2 * v2;
     } while ( r > 1.0 ); // radius < 1