X-Git-Url: http://git.rot13.org/?p=zxing.git;a=blobdiff_plain;f=core%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Foned%2FUPCEANExtensionSupport.java;fp=core%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Foned%2FUPCEANExtensionSupport.java;h=15d15d3882c9d25c8d56469e6f1f24a3bed4b5a8;hp=dea116d61a37b24e73ad79d4c0243544a3acef24;hb=b527af627aa13d6ba6197b3dd957e91b2ba75705;hpb=279a63c72a04a5c181b520512e2ce69d6ea6b86d diff --git a/core/src/com/google/zxing/oned/UPCEANExtensionSupport.java b/core/src/com/google/zxing/oned/UPCEANExtensionSupport.java index dea116d6..15d15d38 100644 --- a/core/src/com/google/zxing/oned/UPCEANExtensionSupport.java +++ b/core/src/com/google/zxing/oned/UPCEANExtensionSupport.java @@ -160,7 +160,7 @@ final class UPCEANExtensionSupport { } private static String parseExtension5String(String raw) { - String currency = null; + String currency; switch (raw.charAt(0)) { case '0': currency = "£"; @@ -169,18 +169,28 @@ final class UPCEANExtensionSupport { currency = "$"; break; case '9': - if ("99991".equals(raw)) { + // Reference: http://www.jollytech.com + if ("90000".equals(raw)) { + // No suggested retail price + return null; + } else if ("99991".equals(raw)) { + // Complementary return "0.00"; } else if ("99990".equals(raw)) { return "Used"; } + // Otherwise... unknown currency? + currency = ""; break; default: currency = ""; break; } int rawAmount = Integer.parseInt(raw.substring(1)); - return currency + (rawAmount / 100) + '.' + (rawAmount % 100); + String unitsString = String.valueOf(rawAmount / 100); + int hundredths = rawAmount % 100; + String hundredthsString = hundredths < 10 ? "0" + hundredths : String.valueOf(hundredths); + return currency + unitsString + '.' + hundredthsString; } }