精易论坛

标题: 长整数型相加问题 结果少1 [打印本页]

作者: 770707368    时间: 2025-6-22 01:18
标题: 长整数型相加问题 结果少1
  
子程序名返回值类型公开备 注
长整数相加  
变量名类 型静态数组备 注
a长整数型 
b长整数型 
c长整数型 
a = 到长整数 (“16196910000000000”)
b = 到长整数 (“1509696693”)
c = a + b
输出调试文本 (a)
输出调试文本 (b)
输出调试文本 (c)


a* 16196910000000000
b* 1509696693
c* 16196911509696692


输出结果是  16196911509696692
是什么原因


作者: xiaoyu1986    时间: 2025-6-22 01:18
我掐指一算,是长整数表示问题,导致的某个0.99999999999999.......所以,自己改一下:
  
子程序名返回值类型公开备 注
_按钮1_被单击  
调试输出 (大数相加 (“16196910000000000”, “1509696693”))
子程序名返回值类型公开备 注
大数相加文本型 
参数名类 型参考可空数组备 注
a文本型
b文本型
变量名类 型静态数组备 注
result文本型 
carry整数型 
i整数型 
j整数型 
digitA整数型 
digitB整数型 
sum整数型 
result = “”
carry = 0
i = 取文本长度 (a)
j = 取文本长度 (b)
判断循环首 (i > 0 j > 0 carry > 0)
如果真 (i > 0)
digitA = 到整数 (取文本中间 (a, i, 1))

如果真 (i > 0)
digitB = 到整数 (取文本中间 (b, j, 1))
sum = digitA + digitB + carry
carry = sum ÷ 10
result = 到文本 (sum % 10) + result
i = i - 1
j = j - 1
判断循环尾 ()
返回 (result)


i支持库列表   支持库注释   
spec特殊功能支持库






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4