Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Technology

Berkshire Hathaway's Stock Price Is Too Much for Computers (wsj.com) 159

Berkshire Hathaway is trading at more than $421,000 per Class A share, and the market is optimistic. That's a problem. From a report: The price has grown so high, it has nearly hit the maximum number that can be stored in one common way exchange computers handle digits. On Tuesday, Nasdaq temporarily suspended broadcasting prices for Class A shares of Berkshire over several popular data feeds. Such feeds provide real-time price updates for a number of online brokerages and finance websites. Nasdaq's computers can only count so high because of the compact digital format they use for communicating prices. The biggest number they can handle is $429,496.7295. Nasdaq is rushing to finish an upgrade later this month that would fix the problem. It isn't just Nasdaq.

Another exchange operator, IEX Group Inc., said in March that it would stop accepting investors' orders in Class A shares of Berkshire Hathaway "due to an internal price limitation within the trading system." It's the stock-market version of the Y2K bug. And it's becoming an increasingly urgent issue as shares of Warren Buffett's company have risen more than 20% this year, buoyed by a rising market and a return to profitability after fallout from the Covid-19 pandemic in 2020. Here's the trouble: Nasdaq and some other market operators record stock prices in a compact computer format that uses 32 bits, or ones and zeros. The biggest number possible is two to the 32nd power minus one, or 4,294,967,295. Stock prices are frequently stored using four decimal places, so the highest possible price is $429,496.7295. No other stock is anywhere near Berkshire Class A's stratospheric price levels, so it is understandable why the engineers behind Nasdaq's and IEX's systems chose the number format, which programmers call a four-byte unsigned integer.

This discussion has been archived. No new comments can be posted.

Berkshire Hathaway's Stock Price Is Too Much for Computers

Comments Filter:
  • by jfdavis668 ( 1414919 ) on Wednesday May 05, 2021 @10:58AM (#61350146)
    As long as it doesn't cause an Ariane V rocket to explode, I think we'll survive.
    • by necro81 ( 917438 )
      On the other hand, if it rolls over from $429,496.7295 to $0.0001, that would cause many heads to explode.
      • Re:Rollover (Score:5, Funny)

        by burtosis ( 1124179 ) on Wednesday May 05, 2021 @12:51PM (#61350834)

        On the other hand, if it rolls over from $429,496.7295 to $0.0001, that would cause many heads to explode.

        So what you’re saying is they would suffer from a stock overflow error.

      • I wonder if that change might make my BRKB (Berkshire Hathaway Inc. Class B) share explode. The "B" shares are currently at $5,749.99

        • Really? What form of dollars? Hong Kong?
          As of right now the Class B shares are going for just under $283 on the NYSE.
          Agreed on the Class A shares though, $425 125.50 is the current price.
          Since A = 1500 B, people wanting to buy the shares have an easy alternative. The people with problems are those who want to sell their "A" shares.

          I wonder what programs they use in Venezuela - the current exchange rate is 271 668 741 895.75 Bolivars to the US $ so they have either solved the problem or abandoned shares a

          • Really? What form of dollars? Hong Kong?

            Mexican, apparently. There was 50-to-1 stock split about 10 years ago, which I forgot about and did not notice because the quote in Mexican dollars was about the price I was expecting.

      • by tomhath ( 637240 )
        Buy the dip.
      • by msauve ( 701917 )
        If you see it become a penny stock, time to buy!
      • by kqs ( 1038910 )

        It's far worse. It's signed, so it would roll over to -$429,496.7296. That would probably make the stock market explode.

        • by msauve ( 701917 )
          > It's signed

          No, it isn't. If it were, the max would be 2147483647 (e.g. $214,748.3647).
  • 24 bit floats to represent stock prices.

  • This should never happen. Not because of a software bug, because Warren Buffet won't let them split the stock! Share prices should never be this high.
    • This should never happen. Not because of a software bug, because Warren Buffet won't let them split the stock! Share prices should never be this high.

      Says who? What rationale do you have for such a statement?

      Buffet has listed his reasons many times for why he doesn't want to split the stock. They all make logical sense to me. What is your logical retort?

      • The rationale that his rationale of attracting the serious long term investor serves no purpose when they have the counterpart class b which splits. He could have just had A split in the first place.
        • https://www.investopedia.com/a... [investopedia.com]

          It makes perfect sense. It's his company and he wants to keep the peanut gallery limited. What exactly is the problem?

          Let's try a car analogy:

          I have a Tesla and most people don't. Lots of people who don't have one want to drive one. Am I obligated to put mine out one of those luxury car share rental thingies or do I have the right to sell it to the highest bidder or just plain keep it to myself?

        • Re: (Score:3, Informative)

          Class B doesn't have proportional voting rights. Class A is expensive, because he wants long-term investors to have class A and have more voting rights than the Class B peons. It makes sense to have your supposedly longer term people have a higher voting power than the supposedly shorter term people.

          You could always argue class A doesn't attract the type of investors it should, and I have no opinion on that. However, right now if you can't even trade Class A, by definition you've locked in long-term inves
          • It has nothing to do with long term investing. He didn't want to dillute ownership rights in the class A shares when he created Class B. Class B only shares ownership in parts of the assets, not all of them.

            Essentially Class A = Owners of the whole company.
            Class B = Owners in parts of the company acquired after class b shares were created.

            • by msauve ( 701917 )
              >Class B = Owners in parts of the company acquired after class b shares were created.

              You couldn't be more wrong if you made that up, and it's obvious that you did.
        • Re:Shouldn't Happen (Score:4, Interesting)

          by Actually, I do RTFA ( 1058596 ) on Wednesday May 05, 2021 @02:01PM (#61351324)

          The class B shares were created because of the rise of mutual funds that promised to just match Berkshire Hathaway's investments. Buffet was afraid that these funds would dilute his brand, follow slowly and therefore return less to their investors, and otherwise be less advantageous than bringing them in house.

          He wants Class A to have a status symbol effect. Which makes sense, it trades at a premium to an equivalent amount of Class B

        • by dnaumov ( 453672 )

          I hope A-class never gets split. It weeds out the speculators and serves as a nice status symbol of the company's greatness.

    • Is Berkshire Hathaway related to Stratton Oakmont? Sounds somewhat similar...
    • The idea that not splitting attracts the buy and hold investor is ridiculous, especially when paired with not paying a dividend. I get why they don't pay dividends--it forces a taxable event, whereas selling would get you the favored long term capital gains rate; but with the dividend paying stock you get reasonable returns on your money, or you can easily reinvest them. With the original Berkshire scheme, the only way to make money is to sell. What if you just want to go on vacation? One Berkshire shar

  • Computers weren't set up for such an event.
    • Digital currencies have their own issues. When I first heard that Bitcoin supported up to 8 decimal places I knew that would make using it on traditional financial systems a nightmares. A lot of systems have a maximum number of decimal places and I haven't seen many systems deal with 8 digits unless they had some specific reason why such a feature would be needed, and until bitcoin came around, there wasn't a need for most systems to support anywhere close to this number of decimal places. You could always

  • It's not an integer if it has decimals.

    • by AuMatar ( 183847 )

      It is an integer. Its held as an integer number of ten thousandths of a penny. That just happens to have a visualization with a decimal in it.

    • It can, if the integer is the fixed smallest decimal. It's not counting in dollars, it's counting in integer numbers of a hundredth of a cent.

      • Yes, it could. But according to the summary, it counts fractional dollars, not 1/100ct.

        And yes, the binary representation in memory would be the same. But that makes the difference even more important, because many different things have the same binary representation. That's why it is so important to know if any 4 bytes in memory are representing an integer, a fixed point decimal, a floating point decimal or an Unicode-Char.

        You absolutely DO NOT want to write stock market software that handles stock quotes

        • British shares should always be quoted in pence, unless someone is doing it wrong. I've sometimes seen people use GBx or GBX as the currency code.

    • If the atomic unit is .01 cents, then it is an integer.

    • It's not an integer if it has decimals.

      The underlying representation is a 32-bit unsigned binary integer. To represent a stock price it is scaled by 10000.

      I had a similar problem when developing a text editor. For people working from hardcopy terminals we used numbers to identify lines. When the text editor read a file it numbered the lines from 1. If the user inserted a line between two existing lines, it got a number between the numbers of the existing lines, so a line inserted between lines 1 and 2 would get the number 1.5.

      We wanted to ha

    • Bring back BCD (Score:4, Interesting)

      by klubar ( 591384 ) on Wednesday May 05, 2021 @11:34AM (#61350354) Homepage

      This is just crying out for BCD represenation. If I remember correctly:

        01 STOCKPRICE PIC S9(7)V9(4).

    • No other stock is anywhere near Berkshire Class A's stratospheric price levels, so it is understandable why the engineers behind Nasdaq's and IEX's systems chose the number format, which programmers call a four-byte unsigned integer.

      Its an integer - I realize they buried this fact by putting it at the very end of the /. Summary, but its stored as an integer, A four byte integer.

      The issue is how the value is stored, not how it is displayed. It would have been a bloody mess if they stored stock prices as floating point, the mind reels at the thought of all those rounding errors!

      • by Kaenneth ( 82978 )

        ugh, rounding errors.

        I found a way to freeze/burn a Microsoft Surface big-ass-table machine using three pennies.

        drop a penny on a slider control, and slide it off to the side; the software starts tracking the position as a whole integer

        drop a second penny, and nudge it off to the side as well; the software calculates the 'average' position, which is sometimes a whole number sometimes a number ending in .5

        drop a third penny, and tart nudging it... the average position can now end with .3333 or .6666.

        However,

  • Re: (Score:2, Interesting)

    Comment removed based on user account deletion
  • My account in "The Simpsons Tapped Out" is capped at $4,294,967,295. The game throws a dialog when you hit that number the first time saying their internal counter can't go any higher. Thanks EA!

    "Three comma club" ftw.

    • by Kaenneth ( 82978 )

      in Everquest a token good for a 30 day subscription ('Krono') sells for around 2,100,000,000 'copper piece' value; probably only because they hit the signed int limit on the in-game marketplace. selling for more requires doing the trade manually.

    • I used to get the high score in Galaga all the time because of an overflow bug. I possibly wasn't that great at the game, but if I could hit all of an incoming wave of ships in one of the first few easier levels the score would go crazy and I'd get a few million extra points.

  • am i the only one who thinks: who needs that many decimal points anyway? move it left one: you now have a factor of ten more overhead space. now the max price is $4,294,967.295

    • I agree, especially if you multiply by 10 the value of my stock portfolio in the process.

    • by tomhath ( 637240 )
      Yes, you are the only one. Stocks trade in millions of shares. that 1/100th of a cent becomes a significant round-off error.
    • But that screws up all the financial calculations and various rules and promises you made to customers. Dropping that last 0.0003 might cost someone several thousand dollars...

    • Don't you mean 'Move it *RIGHT*'? Mistakes like that lead to an Office Space scenario....
  • Back around 1979, when gasoline prices started soaring with OPEC production limits and the Iran crisis, gas pumps didn't support three digits for the per-gallon price.
    It turned out to be easier to set them to price per half gallon than to upgrade to support three digits. Those arrived pretty quickly, but for a while judging prices took a little math.

    There's no reason why exchanges can't trade on, say, 1/10 shares, with a requirement to purchase 10 of them.

  • To me the funny thing is the holdover to four decimal places from fractional prices. Only two are required today with decimal pricing.

  • by angel'o'sphere ( 80593 ) <angelo,schneider&oomentor,de> on Wednesday May 05, 2021 @12:37PM (#61350740) Journal

    which programmers call a four-byte unsigned integer.
    It is called a 4 byte (unsigned) fixed point number, not an unsigned integer.

    • Re:Erm nope? (Score:5, Insightful)

      by thegarbz ( 1787294 ) on Wednesday May 05, 2021 @01:02PM (#61350928)

      Nope. It's called a 4 byte unsigned integer. That you chose to display it as a fixed point number is your problem and has nothing to do with how the underlying data is declared.

      • by Ichijo ( 607641 )

        Even "4 bytes" is ambiguous. "4 octets" is more clear. Even then, some embedded systems are based on 16-bit words and so it would be a "2-word" data type. Of course, "word" is also ambiguous...

        So let's just say "32 bits unsigned" and call it a day.

    • by bws111 ( 1216812 )

      What processors support 'fixed point numbers'? None. Why? They are integers.

      • There are processors however that support decimal arithmetic. Not used much these days, but it used to be a big thing when you wanted faster decimal calculations, such as on a calculator or a financial transaction This survives today even in the x86_64 RFLAGS status register (Auxillary Carry) even though it's an archaic holdover from when the 8080 was used a lot of in calculators.

        • by bws111 ( 1216812 )

          I am well aware of decimal arithmetic, I have been working on mainframes for 40+ years. However, even in decimal arithmetic the numbers are stored as (decimal) integers, not 'fixed point'. As the IBM Z Architecture PoP states: "Operands of the decimal-arithmetic instructions are in the signed-packed-decimal format and are treated as signed decimal integers. A decimal integer is represented in true form as an absolute value with a separate plus or minus sign. It contains an odd number of de

      • First of all: basically all main frame processors do support fixed points and/or BCDs
        Secondly: it is the programmer who defines how to interpret a sequence of bits. Has nothing to do with the processor per se.

        • by bws111 ( 1216812 )

          Which mainframe processors support fixed point (other than integers)? IBM Z has instructions like CONVERT TO FIXED, but the 'fixed' they convert to is an integer. And the BCD instructions all operate on integers.

    • by edp ( 171151 )
      It is both an integer number of hundredths of a cent and a four-decimal-digit fixed-point number of dollars. The difference is barely conceptual, maybe just nominal.
    • You are confusing representation with presentation.

      Q. How is Fixed Point 8.8 stored?
      Q. How is Fixed Point 4.12 stored?
      Q. How is half float [wikipedia.org] stored?

      A. They ALL are represented as unsigned 16-bit integers but presented differently.

      A four byte integer can be presented as a:

      * Signed 32-bit integer,
      * Unsigned 32-bit integer,
      * 32-bit Floating Point Number

      It is up to the programmer to determine how to display the bits.

      • It is up to the programmer to determine how to display the bits.
        Exactly. And hence the 4 bytes are not interpreted as "4 byte integer".

  • I remember when high-priced stocks used to, you know, "split.."
    • That's one of the problems with the obsession over stock prices rather than market cap valuations. Higher prices mean better in people's minds and distort valuations.

      It's easy to mentally compare a company like Uber's valuation at ~$50/share and think it's undervalued when you compare it to other tech stocks like Netflix at $500 or Google at $2,300/share. It's much harder to rationalize how a taxi company with no assets or employees is worth $95 billion.

  • Adjust the fixed point radix across the board. Problem solved.

  • by jsrjsr ( 658966 ) on Wednesday May 05, 2021 @07:10PM (#61353064)

    Until 2001, stocks traded in 1/16 dollar units, which requires four decimal places to represent accurately. Originally this was 1/8 dollar units (pieces of eight), but it changed to 1/16 in 1997 as a precursor to decimalization. Changing the number of decimal places to two isn't as easy as it sounds given that there is a huge amount of historical data stored in the old format.

FORTRAN is not a flower but a weed -- it is hardy, occasionally blooms, and grows in every computer. -- A.J. Perlis

Working...