如何实现随机位数值中取值个十百千中的10两位值



  • 例: 我需要做一套金钱系统 分别有 金 银 铜 换算率是100进1 当钱数为15616864 时 需要取值是 金1561 银68 铜64 钱的数量会无限上加 所以只有个、十的位数是不变的!


    前后我以经取值成功 事件如此:left(str(钱币),int(len(str(钱币))-4)) 但中间银的值一直未能想出办法同,希望老师们多多指教!



  • @男神1987 用取整和求余应该可行,
    例如最后两位(铜),就是 钱数%100
    例如倒数三四位(银),就是 int(钱数/100)%100
    例如倒数五位或以上(金),就是 int(钱数/10000)



  • 以解决不好意思了。。。在此分享一下希望对大家有用

    在我项目是用了一个变量作为金钱系统 :但是换算是 100铜 =1银 100银=1金 当钱的数量不设上限 所以钱币的数值位数会一直上升 。



    left(str(钱币),int(len(str(钱币))-4))

    用下面三句事件别取值显示到文本框中:金值 left(str(钱币),int(len(str(钱币))-4)) 解为:用len得到【钱币数字变量】这个文本的字符长度 减去4位数 得到除银铜4位数以外的长度 再用left得到这个长度以前的所有数 也就是金

    例: 金钱数为: 31215646984 32654616446134 1321654654984

    设置文本的值为:left(str(钱币),int(len(str(钱币))-4)) 第一个结果得到的值:3121564 第二个结果得到的值:3265461644 第三个结果得到的值: 132165465
    下面两句只要再做一个减法就可以了
    设置文本的值为:mid(str(钱币),int(int(len(str(钱币))-4)),2) 第一个结果得到的值:69 第二个结果得到的值:61 第三个结果得到的值:49
    设置文本的值为:mid(str(钱币),int(int(len(str(钱币))-6)),2)第一个结果得到的值:84 第二个结果得到的值:34 第三个结果得到的值:84



  • 你的方法更简洁我去试一下 谢谢


登录后回复