diff --git a/remarks.cabal b/remarks.cabal
--- a/remarks.cabal
+++ b/remarks.cabal
@@ -1,5 +1,5 @@
 name:                remarks
-version:             0.1.2
+version:             0.1.3
 synopsis:            A DSL for marking student work
 description:         A DSL for marking student work; see README.md for further details.
 homepage:            https://github.com/oleks/remarks#readme
diff --git a/src/PPmrk.hs b/src/PPmrk.hs
--- a/src/PPmrk.hs
+++ b/src/PPmrk.hs
@@ -7,15 +7,23 @@
 toMrk :: [Judgement] -> String
 toMrk js = render $ vcat $ map (formatJudgement 1) js
 
-formatJudgement level (Judgement (header, comments, judgements)) = 
-  formatHeader level header $+$ 
-  (nest 2 $ vcat $ map (formatComment) comments) $+$ 
+formatJudgement level (Judgement (header, comments, judgements)) =
+  formatHeader level header $+$
+  (nest 2 $ vcat $ map (formatComment) comments) $+$
   (vcat $ map (formatJudgement (level + 1)) judgements)
 
-formatHeader level (Header (title, point, maxPoints)) = 
-  (text $ replicate level '#') <+> text title <> colon <+> double point <> text "/" <> double maxPoints 
+isIntegral :: Double -> Bool
+isIntegral x = x == fromInteger (round x)
 
-formatComment (Comment (mood, commentParts)) = 
+pointsDoc :: Double -> Doc
+pointsDoc v | isIntegral v = integer (round v)
+pointsDoc v = double v
+
+formatHeader level (Header (title, point, maxPoints)) =
+  (text $ replicate level '#') <+> text title <> colon <+>
+    pointsDoc point <> text "/" <> pointsDoc maxPoints
+
+formatComment (Comment (mood, commentParts)) =
   formatMood mood <+> (vcat $ map formatCommentPart commentParts)
 
 formatMood Positive  = text "+"
