Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Strange invoice from Verizon

Strange invoice from Verizon

Scheduled Pinned Locked Moved The Lounge
question
47 Posts 17 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.

    A Offline
    A Offline
    Amarnath S
    wrote on last edited by
    #28

    How much did Verizon spend for this invoice? If it was an email invoice, perhaps free. If a postal delivery, they spent a non-zero positive amount to get back zero dollars.

    S 1 Reply Last reply
    0
    • D Daniel Pfeffer

      JimmyRopes wrote:

      I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter

      For those poor souls born too late to experience the Joy of COBOL :): COBOL's Packed Decimal format is a signed-magnitude format that packs two binary coded decimal characters in a single byte, i.e. 42 decimal could be represented as 0x42. This holds for all bytes except the last, which contains 1 decimal place and either C (positive or credit) or D (negative or debit). For example: -1 would be stored as 0x1D +1 would be stored as 0x1C +1234 would be stored as 0x01 0x23 0x4C

      If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

      N Offline
      N Offline
      newton saber
      wrote on last edited by
      #29

      Daniel Pfeffer wrote:

      +1234 would be stored as 0x01 0x23 0x4C

      :thumbsdown: X| That is crazy. Hex representing decimal values, before converting from hex. :confused: Sounds like someone took the path of least resistance on that solution. If it works, I guess it's right. Here's the code I will use in my new language. Brilliant = dumbest person ever Manager = person most likely to create most foul solution that s/he considers ingenius. Solution = tird which rolled to the bottom of the hill. Here's an example sentence in my new language. My brilliant manager created a solution and now I am forced to fix it. :-\

      D 1 Reply Last reply
      0
      • L Lost User

        If they'd be smart, they'd make it even if(outstandingBalance > postageFee) { SendBill(customer); }

        S Offline
        S Offline
        Stefan_Lang
        wrote on last edited by
        #30

        Actually I recall one instance of an invoice that specifically stated they didn't want the money because it was less than 1.00. But that was a one-time experience and I don't expect that to ever happen again: over the past years charges were raised for pretty much anything that used to be free of charge, such as using a cash point to retrieve your own money. :wtf:

        GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

        1 Reply Last reply
        0
        • D Daniel Pfeffer

          JimmyRopes wrote:

          I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter

          For those poor souls born too late to experience the Joy of COBOL :): COBOL's Packed Decimal format is a signed-magnitude format that packs two binary coded decimal characters in a single byte, i.e. 42 decimal could be represented as 0x42. This holds for all bytes except the last, which contains 1 decimal place and either C (positive or credit) or D (negative or debit). For example: -1 would be stored as 0x1D +1 would be stored as 0x1C +1234 would be stored as 0x01 0x23 0x4C

          If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

          J Offline
          J Offline
          JimmyRopes
          wrote on last edited by
          #31

          Daniel Pfeffer wrote:

          For those poor souls born too late to experience the Joy of COBOL

          I wasn't born too late but I successfully avoided COBOL. I coded in IBM Assembler back in the day.

          Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs

          D 1 Reply Last reply
          0
          • A Amarnath S

            How much did Verizon spend for this invoice? If it was an email invoice, perhaps free. If a postal delivery, they spent a non-zero positive amount to get back zero dollars.

            S Offline
            S Offline
            Stefan_Lang
            wrote on last edited by
            #32

            Maybe it was an email invoice with an ad that produced a bit of revenue and Verizon deducted (part of) that revenue from the invoice, causing the -0? :cool:

            GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

            L 1 Reply Last reply
            0
            • S Stefan_Lang

              Maybe it was an email invoice with an ad that produced a bit of revenue and Verizon deducted (part of) that revenue from the invoice, causing the -0? :cool:

              GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #33

              It was an email invoice with no ads attached. It just does not make much sense!

              1 Reply Last reply
              0
              • N newton saber

                Daniel Pfeffer wrote:

                +1234 would be stored as 0x01 0x23 0x4C

                :thumbsdown: X| That is crazy. Hex representing decimal values, before converting from hex. :confused: Sounds like someone took the path of least resistance on that solution. If it works, I guess it's right. Here's the code I will use in my new language. Brilliant = dumbest person ever Manager = person most likely to create most foul solution that s/he considers ingenius. Solution = tird which rolled to the bottom of the hill. Here's an example sentence in my new language. My brilliant manager created a solution and now I am forced to fix it. :-\

                D Offline
                D Offline
                Daniel Pfeffer
                wrote on last edited by
                #34

                newton.saber wrote:

                That is crazy. Hex representing decimal values, before converting from hex.

                It actually makes a lot of sense, considering that operations must be performed in decimal, rather than binary: * Multiplication and division by powers of 10 are trivial * Numerical fields of arbitrary length may be defined (just terminate the last byte with C or D) * Extraction of single digits (e.g. for display formatting) is very fast * Values may be verified at a glance in the core dump (no interactive debuggers in those days...) All this at a minor increased cost in complexity and storage requirements. Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!

                If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                N 1 Reply Last reply
                0
                • J JimmyRopes

                  Daniel Pfeffer wrote:

                  For those poor souls born too late to experience the Joy of COBOL

                  I wasn't born too late but I successfully avoided COBOL. I coded in IBM Assembler back in the day.

                  Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs

                  D Offline
                  D Offline
                  Daniel Pfeffer
                  wrote on last edited by
                  #35

                  JimmyRopes wrote:

                  I coded in IBM Assembler back in the day

                  Ah, yes. Those were the days... I learnt IBM System/360 assembly language in University, but never had occasion to use it after graduation (I still have the IBM System/360 Assembly Language card, and Struble's book on the language at home). However, I did write quite a lot of code in 8086 & 80286 assembly language.

                  If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                  J 1 Reply Last reply
                  0
                  • L Lost User

                    If they'd be smart, they'd make it even if(outstandingBalance > postageFee) { SendBill(customer); }

                    E Offline
                    E Offline
                    Evil Iceblock
                    wrote on last edited by
                    #36

                    LOL good one!

                    1 Reply Last reply
                    0
                    • L Lost User

                      A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.

                      M Offline
                      M Offline
                      Mark_Wallace
                      wrote on last edited by
                      #37

                      In many apps, -0 means "unlimited". Screwed you are, Luke.

                      I wanna be a eunuchs developer! Pass me a bread knife!

                      1 Reply Last reply
                      0
                      • J JimmyRopes

                        Daniel Pfeffer wrote:

                        I suspect that their accounting package is written in COBOL and data are stored using the packed-decimal format, which also has positive and negative zeroes.

                        You are probably right about them using COBOL. I was just responding to the question that the OP didn't know that negative zero existed. I didn't know that COBOL had a "packed decimal" format, or anything else about COBOL for that matter, and that "packed decimal" format (whatever that is) had a positive and negative zero in that format.

                        Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs

                        Sander RosselS Offline
                        Sander RosselS Offline
                        Sander Rossel
                        wrote on last edited by
                        #38

                        I didn't know the formatter formatted the formats for formatting formats either :D

                        My blog[^]

                        public class SanderRossel : Lazy<Person>
                        {
                        public void DoWork()
                        {
                        throw new NotSupportedException();
                        }
                        }

                        1 Reply Last reply
                        0
                        • L Lost User

                          A couple of weeks ago, I got my regular monthly invoice from Verizon for my cellphone, and paid it. Today I got another invoice from them for minus zero dollars! WTF?? I think I will write them a check for minus zero dollars, just to satisfy their accounting computers! I don't want my service suspended for non-payment of my account. :doh: I did not even know that zero can be negative.

                          Sander RosselS Offline
                          Sander RosselS Offline
                          Sander Rossel
                          wrote on last edited by
                          #39

                          I wish I got more invoices of minus zero... You certainly wouldn't see me complaining in the lounge! :doh: Edit: Come to think of it, I'd also settle for minus zero invoices! :D

                          My blog[^]

                          public class SanderRossel : Lazy<Person>
                          {
                          public void DoWork()
                          {
                          throw new NotSupportedException();
                          }
                          }

                          L 1 Reply Last reply
                          0
                          • D Daniel Pfeffer

                            newton.saber wrote:

                            That is crazy. Hex representing decimal values, before converting from hex.

                            It actually makes a lot of sense, considering that operations must be performed in decimal, rather than binary: * Multiplication and division by powers of 10 are trivial * Numerical fields of arbitrary length may be defined (just terminate the last byte with C or D) * Extraction of single digits (e.g. for display formatting) is very fast * Values may be verified at a glance in the core dump (no interactive debuggers in those days...) All this at a minor increased cost in complexity and storage requirements. Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!

                            If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                            N Offline
                            N Offline
                            newton saber
                            wrote on last edited by
                            #40

                            Daniel Pfeffer wrote:

                            Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!

                            That's a very good point, actually. It's just so odd to use 0xZZ where ZZ is a digit and then to just use those digits basically like strings. Just feels odd since most modern languages see 0x as indicating the value that follows will be a hex value. If they had used something lik cbZZ cbZZ I could've almost accepted it more easily. But again, I have the benefit of looking back on history. But it's a lot more fun to act like there is no history and just poke fun at the way they designed the solution. :)

                            D 1 Reply Last reply
                            0
                            • Sander RosselS Sander Rossel

                              I wish I got more invoices of minus zero... You certainly wouldn't see me complaining in the lounge! :doh: Edit: Come to think of it, I'd also settle for minus zero invoices! :D

                              My blog[^]

                              public class SanderRossel : Lazy<Person>
                              {
                              public void DoWork()
                              {
                              throw new NotSupportedException();
                              }
                              }

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #41

                              I am not complaining. As stated earlier, I like Verizon. I just think their computers are behaving in a somewhat strange fashion.

                              1 Reply Last reply
                              0
                              • D Daniel Pfeffer

                                JimmyRopes wrote:

                                why computers have positive and negative zero[^]

                                Given standard accounting requirements, I very much doubt that Verizon are keeping their accounts in binary floating-point values. Accounting (and banking) operations must be EXACT; it is impossible to represent 0.01 exactly in binary, and therefore binary floating point is not used in accounting packages. I suspect that their accounting package is written in COBOL and data are stored using the packed-decimal format, which also has positive and negative zeroes.

                                If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                                J Offline
                                J Offline
                                jschell
                                wrote on last edited by
                                #42

                                Daniel Pfeffer wrote:

                                Given standard accounting requirements, I very much doubt that Verizon are keeping their accounts in binary floating-point values

                                Valid point. But then the invoice wasn't a direct view into a database either but rather a processed piece of something (paper or email) that was generated from a process, very likely involving a number of steps. And certainly something in one of those steps decided to put a minus sign there.

                                1 Reply Last reply
                                0
                                • E Evil Iceblock

                                  Although that doesn't sound like a very pleasant experience, that's nothing compared to what I had to endure for over six months with our leading Telco. I signed up for a phone plan, years ago, but when the phone arrived, it was the wrong phone, and when I phoned them to get them to send the right one, I then found out they put me on the wrong plan! But that's not all of it... They kept making mistakes over the phone, and putting me on hold. After a while, they came back and said that I should have been declined, because the particular service I was signing up for was exclusive to existing customers only - not new customers. And since I had only just received my phone - I had never used it to make calls, and since they told me I was able to sign up for that particular service and did so, and since I never used the service - common sense and logic proves that I owe them nothing. I sent the phone back, and they told me they would cancel the service, and that would be that. Weeks go by... I get a letter in the mail. Those idiots sent me a bill of $0.02. Yep. That's right. 2 cents. I phoned them and explained that the service was canceled due to their incompetence and that I had not used the service, so they have no right to charge me anything but they simply were not able to understand that. I told them that I couldn't even pay them 2 cents because in Australia, we stopped producing 1 and 2 cent coins decades ago! They still insisted that I pay them 2 cents. I hung up the phone (after yelling at them). Weeks go by... I get a letter in the mail. It's from a Debt Collection agency, threatening to take me to court for 2 cents. Not only was I extremely angry, but after reading it again and showing it to my parents, I just couldn't stop laughing at how stupid some people really are. Not only do they have absolutely zero legal or moral basis for charging me anything at all - they were asking me to do something that was just not even possible to do - and - they spent more money threatening me with legal action than what the actual "debt" was worth! IDIOTS! Anyway, it took over six months to get this stuff sorted out. I still have a copy of the paper here. I should frame it someday. Put it up on my wall.

                                  J Offline
                                  J Offline
                                  jschell
                                  wrote on last edited by
                                  #43

                                  Evil Iceblock wrote:

                                  Those idiots sent me a bill of $0.02. ... because in Australia, we stopped producing 1 and 2 cent coins decades ago! They still insisted that I pay them 2 cents.

                                  Take a 5 cent coin to the office and demand that they give you the difference?

                                  E 1 Reply Last reply
                                  0
                                  • J jschell

                                    Evil Iceblock wrote:

                                    Those idiots sent me a bill of $0.02. ... because in Australia, we stopped producing 1 and 2 cent coins decades ago! They still insisted that I pay them 2 cents.

                                    Take a 5 cent coin to the office and demand that they give you the difference?

                                    E Offline
                                    E Offline
                                    Evil Iceblock
                                    wrote on last edited by
                                    #44

                                    Lol, that thought did cross my mind, but I think I was a bit too angry at the time to be that playful. Looking back at it now though, I would've had fun doing that!

                                    1 Reply Last reply
                                    0
                                    • D Daniel Pfeffer

                                      JimmyRopes wrote:

                                      I coded in IBM Assembler back in the day

                                      Ah, yes. Those were the days... I learnt IBM System/360 assembly language in University, but never had occasion to use it after graduation (I still have the IBM System/360 Assembly Language card, and Struble's book on the language at home). However, I did write quite a lot of code in 8086 & 80286 assembly language.

                                      If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                                      J Offline
                                      J Offline
                                      JimmyRopes
                                      wrote on last edited by
                                      #45

                                      Daniel Pfeffer wrote:

                                      I still have the IBM System/360 Assembly Language card

                                      If my memory serves me correctly, and it probably doesn't since it was so long ago, that was a green reference card. The 360 was what I started out coding for in the early 1970's. Later the 370 reference card, and subsequently a booklet, was yellow.

                                      Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs

                                      D 1 Reply Last reply
                                      0
                                      • J JimmyRopes

                                        Daniel Pfeffer wrote:

                                        I still have the IBM System/360 Assembly Language card

                                        If my memory serves me correctly, and it probably doesn't since it was so long ago, that was a green reference card. The 360 was what I started out coding for in the early 1970's. Later the 370 reference card, and subsequently a booklet, was yellow.

                                        Once you lose your pride the rest is easy. In the end, only three things matter: how much you loved, how gently you lived, and how gracefully you let go of things not meant for you. – Buddha Simply Elegant Designs JimmyRopes Designs

                                        D Offline
                                        D Offline
                                        Daniel Pfeffer
                                        wrote on last edited by
                                        #46

                                        I started programming assembly language at University in 1981, and the colour of my reference card (for the System 370) is yellow.

                                        If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                                        1 Reply Last reply
                                        0
                                        • N newton saber

                                          Daniel Pfeffer wrote:

                                          Our predecessors may have worked on (by our standards) underpowered processors with primitive tools, but never assume that they were stupid!

                                          That's a very good point, actually. It's just so odd to use 0xZZ where ZZ is a digit and then to just use those digits basically like strings. Just feels odd since most modern languages see 0x as indicating the value that follows will be a hex value. If they had used something lik cbZZ cbZZ I could've almost accepted it more easily. But again, I have the benefit of looking back on history. But it's a lot more fun to act like there is no history and just poke fun at the way they designed the solution. :)

                                          D Offline
                                          D Offline
                                          Daniel Pfeffer
                                          wrote on last edited by
                                          #47

                                          newton.saber wrote:

                                          But it's a lot more fun to act like there is no history and just poke fun at the way they designed the solution

                                          Those who cannot remember the past are condemned to repeat it. -- George Santayana

                                          If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack. --Winston Churchill

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups