从数学的角度来说,tan(90º)当然不存在,数值逼近∞。但是对于计算机而言,∞就是在有限的数位里把每一位都写上数。
由此也就产生了计算机精度的问题,计算机只能用一个有限的有理数去近似表示无限循环的有理数或无理数。
一旦小数部分或整数部分超过精度限制,就可能导致输出错误。
开发计算软件的时候,通常会对这种溢出进行修正修正结果一:0.3333 3333 3333 333 + 0.6666 6666 6666 666 =11/3 + 1/3 = 0.6666 6666 6666 6672/3 = 0.6666 6666 6666 667由于小数部分的数位限制,最后一位可能采取四舍五入的方式。而输入的小数数位过长,也可能会近似考虑成分数运算。
修正结果二:2^100 = 126 7650 6002 2823 0000 0000 0000 0000100^100 = 输入错误整数部分也有长度限制,具体长度……不同机器应该也不同。修正结果 n :tan(90º) = 1 6331 2393 5319 5400 显然这个数的位数还没有超过2^100,但是三角函数tan(x),可能会先近似处理x,然后进行计算,看起来是输入了90º,其实被替换成了一个近似的数字,也就是在输入的时候已经规避了定义域{x|x∈(-π/2+kπ,π/2+kπ),k∈Z}以外的数值。下附近似数值运算结果:tan(88º)=28.6362532829155 tan(89º)=57.2899616307591 tan(89.9º)=572.957213354303 tan(89.99º)=5729.57789312894 tan(89.999º)=5 7295.779506484 tan(89.9999º)=57 2957.795104344 小数点后八位tan(89.99999999º)=57 2957 8980.01815 小数点后十二位tan(89.999999999999º)=56 8092 8558 4008.7 小数点后十三位tan(89.9999999999999º)=544 1912 7584 8489 小数点后十四位tan(89.99999999999991º)=618 9863 2561 7924 tan(89.99999999999992º)=618 9863 2561 7924 tan(89.99999999999993º)=853 6390 1197 9235 tan(89.99999999999994º)=853 6390 1197 9235 tan(89.99999999999995º)=853 6390 1197 9235 tan(89.99999999999996º)=1374 8233 8639 7210 tan(89.99999999999997º)=1978 9379 6609 5220 tan(89.99999999999998º)=3530 1143 2121 7160 tan(89.99999999999999º)=3530 1143 2121 7160 小数点后十五位tan(89.999999999999991º)=3530 1143 2121 7160 tan(89.999999999999992º)=3530 1143 2121 7160 tan(89.999999999999993º)=1 6331 2393 5319 5400 tan(89.999999999999999º)=1 6331 2393 5319 5400 小数点后十六位tan(89.9999999999999999º)=1 6331 2393 5319 5400最后,给在我之前回答的所有人点了没有帮助,酌情点了反对。 由于我不是手动运算的三角函数值,所以匿了。