pb 数字取整的问题,用 Ceiling 遇到一个很很神奇的问题

cailinaaa 2017-06-27 01:06:51
需要实现 数字的取整的一个操作
主要是现在收款都没有零钱,只要有角角 这些都多收一块

示例:
计算一个小数 只要有小数都收上一位
2522.222 就收为2523
25222222.222 就收为 25222223

用Ceiling函数 需要一个很神奇的问题

decimal ld_dec, num
decimal ld_dec1, num1
ld_dec = 2522.222
num = Ceiling(ld_dec) 这里可以收成 2523
ld_dec1 = 25222222.222
num1 = Ceiling(ld_dec1) 这里就为 1

dec{2} ld_dec2
long num2
ld_dec2 = 25222222.22
num2 = Ceiling(ld_dec2) 这里就为 1

感觉 数字一大 Ceiling 函数就不起作用了
请问各位还有什么好办法不呢
...全文
3024 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldMobile 2017-07-04
  • 打赏
  • 举报
回复
Ceiling应该用Int这个函数一样,When the result for Int would be smaller than -32768 or larger than 32767 如果是大小32767,你可以这么做 dec{2} ld_dec2, ldc_temp long num2 ld_dec2 = 25222222.22 ldc_temp = round(ld_dec2, 0) if ld_dec2 > ldc_temp then ldc_temp = ldc_temp + 1 end if num2 = long(ldc_temp) messagebox('', num2) 以上代码在pb12里调试通过
r00_a2lBUR 2017-06-28
  • 打赏
  • 举报
回复
可以把小数转换成字符串,然后根据点的位置,取出整数部分和小数部分后再做转换。
zephyr_liyo 2017-06-27
  • 打赏
  • 举报
回复
num2 = round(ld_dec2 + 0.49,0) 这样应该可以达到你的要求
cailinaaa 2017-06-27
  • 打赏
  • 举报
回复
引用 2 楼 eclat2299 的回复:
ceiling 回傳為整數 無法處理 > 32767.xxx 以上的數值 因此要自己寫一個function去代替這個function 樓上的方法可以
神奇的是有些PB 版本可以 我 11.5 不可以
eclat2299 2017-06-27
  • 打赏
  • 举报
回复
ceiling 回傳為整數 無法處理 > 32767.xxx 以上的數值 因此要自己寫一個function去代替這個function 樓上的方法可以

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧