回 帖 发 新 帖 刷新版面

主题:精度误差 vs bug?BASIC爱好者都来桃战下

做如下程序
a# = .1 * 10
a! = .1 * 10
a% = .1 * 10
CLS
IF a# = .1 * 10 THEN PRINT "true!" ELSE PRINT "false!"
IF a! = .1 * 10 THEN PRINT "true!" ELSE PRINT "false!"
IF a% = .1 * 10 THEN PRINT "true!" ELSE PRINT "false!"
IF a# = 1 THEN PRINT "true!" ELSE PRINT "false!"
IF a! = 1 THEN PRINT "true!" ELSE PRINT "false!"
IF a% = .1 * 10 THEN PRINT "true!" ELSE PRINT "false!"
IF .1 * 10 = 1 THEN PRINT "true!" ELSE PRINT "false!"

1.请不运行程序,说出结果
2.然后运行程序,看是否和你想的一样
3.请说出结果的理由
4.请用非m$的编译器运行一遍(如freebasic)
5.如果发疯的话,请打120

回复列表 (共2个回复)

沙发

有%号的估计都是相等的
!#的很难说,得看电脑的心情而言
因为很多时候1!或者1#都会是等于
0.9999999或者是
0.9999999999999999999999999999999999999999的

板凳

cls:  color 7 :locate 2,1
  print"                          "
  print"          这是我的签名    "
  print"另外严重鄙    视          "
  print"    签        名          "
  print"    也      也要申请专    "
  print"    要      要      的    "
  print"    申      申  他  人    "
  print"    请      请  人  太    "        
  print"    专      专  都  离    "
  print"    利      利  笑  谱    "
  print"的  人          我        "
  print"  太过        看  太      "
  print"    份    清不      平常  "
  print"                          "

我来回复

您尚未登录,请登录后再回复。点此登录或注册