前阵子自己鼓捣个小程序算账,图省事钱数全用float存。跑出来一对,嚯,100减3.5等于96.499999… 我当场懵圈。查半天才搞明白,电脑里小数是按二进制存的,像0.1这种压根是无限循环小数,存进去就丢精度,加减几轮越错越离谱。
卧槽
后来学乖了,算钱一律用整数分来记,显示再除一百。还有比较浮点数千万别写==,得看俩数差是不是小于个极小值,不然你那判断八百年不触发,debug到头秃哈哈。哈哈
你们平时都咋绕开这坑的,有更省心的写法不
前阵子自己鼓捣个小程序算账,图省事钱数全用float存。跑出来一对,嚯,100减3.5等于96.499999… 我当场懵圈。查半天才搞明白,电脑里小数是按二进制存的,像0.1这种压根是无限循环小数,存进去就丢精度,加减几轮越错越离谱。
卧槽
后来学乖了,算钱一律用整数分来记,显示再除一百。还有比较浮点数千万别写==,得看俩数差是不是小于个极小值,不然你那判断八百年不触发,debug到头秃哈哈。哈哈
你们平时都咋绕开这坑的,有更省心的写法不