diff --git a/coders/cin.c b/coders/cin.c
index 22656e3..e9f055a 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -584,13 +584,13 @@
cin.origination.x_offset=(ssize_t) ReadBlobLong(image);
offset+=4;
if ((size_t) cin.origination.x_offset != ~0UL)
- (void) FormatImageProperty(image,"cin:origination.x_offset","%ld",
- (long) cin.origination.x_offset);
+ (void) FormatImageProperty(image,"cin:origination.x_offset","%.20g",
+ (double) cin.origination.x_offset);
cin.origination.y_offset=(ssize_t) ReadBlobLong(image);
offset+=4;
if ((size_t) cin.origination.y_offset != ~0UL)
- (void) FormatImageProperty(image,"cin:origination.y_offset","%ld",
- (long) cin.origination.y_offset);
+ (void) FormatImageProperty(image,"cin:origination.y_offset","%.20g",
+ (double) cin.origination.y_offset);
offset+=ReadBlob(image,sizeof(cin.origination.filename),(unsigned char *)
cin.origination.filename);
(void) SetImageProperty(image,"cin:origination.filename",
@@ -647,7 +647,7 @@
cin.film.prefix=ReadBlobLong(image);
offset+=4;
if (cin.film.prefix != ~0UL)
- (void) FormatImageProperty(image,"cin:film.prefix","%lu",(unsigned long)
+ (void) FormatImageProperty(image,"cin:film.prefix","%.20g",(double)
cin.film.prefix);
cin.film.count=ReadBlobLong(image);
offset+=4;
@@ -657,8 +657,8 @@
cin.film.frame_position=ReadBlobLong(image);
offset+=4;
if (cin.film.frame_position != ~0UL)
- (void) FormatImageProperty(image,"cin:film.frame_position","%lu",
- (unsigned long) cin.film.frame_position);
+ (void) FormatImageProperty(image,"cin:film.frame_position","%.20g",
+ (double) cin.film.frame_position);
cin.film.frame_rate=ReadBlobFloat(image);
offset+=4;
if (IsFloatDefined(cin.film.frame_rate) != MagickFalse)