diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
index a7746fd..1bcaa242 100644
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -1,6 +1,7 @@
 from test.support import TESTFN, run_unittest
 import os
 import wave
+import struct
 import unittest
 
 nchannels = 2
@@ -38,6 +39,16 @@
         self.assertEqual(nframes, self.f.getnframes())
         self.assertEqual(self.f.readframes(nframes), output)
 
+    def test_issue7681(self):
+        self.f = wave.open(TESTFN, 'wb')
+        self.f.setnchannels(nchannels)
+        self.f.setsampwidth(sampwidth)
+        self.f.setframerate(framerate)
+        # Don't call setnframes, make _write_header divide to figure it out
+        output = b'\0' * nframes * nchannels * sampwidth
+        self.f.writeframes(output)
+
+
 def test_main():
     run_unittest(TestWave)
 
diff --git a/Lib/wave.py b/Lib/wave.py
index 8455522..2fa9b6b 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -240,7 +240,7 @@
             data = array.array(_array_fmts[self._sampwidth])
             nitems = nframes * self._nchannels
             if nitems * self._sampwidth > chunk.chunksize - chunk.size_read:
-                nitems = (chunk.chunksize - chunk.size_read) / self._sampwidth
+                nitems = (chunk.chunksize - chunk.size_read) // self._sampwidth
             data.fromfile(chunk.file.file, nitems)
             # "tell" data chunk how much was read
             chunk.size_read = chunk.size_read + nitems * self._sampwidth
@@ -461,7 +461,7 @@
     def _write_header(self, initlength):
         self._file.write(b'RIFF')
         if not self._nframes:
-            self._nframes = initlength / (self._nchannels * self._sampwidth)
+            self._nframes = initlength // (self._nchannels * self._sampwidth)
         self._datalength = self._nframes * self._nchannels * self._sampwidth
         self._form_length_pos = self._file.tell()
         self._file.write(struct.pack('<l4s4slhhllhh4s',
