设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 土撥撥
打印 上一主题 下一主题

数字的逗号问题

 关闭 [复制链接]

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

11
发表于 2009-4-23 05:20:54 | 只看该作者

  1. #==============================================================================
  2. # ■ Window_Gold
  3. #------------------------------------------------------------------------------
  4. #  显示金钱的窗口。
  5. #==============================================================================

  6. class Window_Gold < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 刷新
  9.   #--------------------------------------------------------------------------
  10.   def refresh
  11.     self.contents.clear
  12.     cx = contents.text_size($data_system.words.gold).width
  13.     self.contents.font.color = normal_color
  14.     self.contents.draw_text(4, 0, 120-cx-2, 32, getgold(), 2)        
  15.     self.contents.font.color = system_color
  16.     self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  17.   end
  18.   def getgold()
  19.     gold = $game_party.gold.to_s
  20.     bit = []
  21.     if(gold.size % 3 == 0)
  22.       time = gold.size / 3 - 1
  23.     else
  24.       time = gold.size / 3
  25.     end
  26.       time.times{|n|
  27.         bit << gold.size - (n + 1) * 3
  28.       }
  29.     bit.each_index{|n|
  30.       gold.insert( bit[n], ",")
  31.     }
  32.     return gold
  33.   end
  34. end
复制代码



《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
12
发表于 2009-4-23 05:28:44 | 只看该作者
八云大大果然很强,编出来的比偶简单多了,受教!
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

13
发表于 2009-4-23 05:30:47 | 只看该作者
以下引用tommay于2009-4-22 21:28:44的发言:

八云大大果然很强,编出来的比偶简单多了,受教!


感觉不是最好的方法, 循环使用了两次~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
14
发表于 2009-4-23 05:32:11 | 只看该作者
以下引用火焰猫燐于2009-4-22 21:30:47的发言:

感觉不是最好的方法, 循环使用了两次~

如果有更好的方法,希望可以告诉在下,用V也行,不过估计八云大大不会在乎这东西的- -
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

15
发表于 2009-4-23 05:36:44 | 只看该作者
  1.   def getgold()
  2.     gold = $game_party.gold.to_s
  3.     size = gold.size
  4.     time = size % 3 == 0 ? size / 3 - 1 : size / 3
  5.     time.times{|n|
  6.       gold.insert( size - (n + 1) * 3, ",")
  7.     }
  8.     return gold
  9.   end
复制代码


好吧,改进了一下.

用一个变量替换了原来的循环 和 原来的局部数组,感觉会快点了~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
16
发表于 2009-4-23 06:30:37 | 只看该作者
将数值每三位以「,」区隔开来也可以这么做

def commify(numstr)
  int ,frac = *numstr.split(".")
  int = int.gsub(/(\d)(?=\d{3}+$)/, '\\1,')
  int << "." << frac if frac
  return int
end

p commify("1234567890") #=> "1,234,567,890"
p commify("12345.6789") #=> "12,345.6789"

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
17
发表于 2009-4-23 06:32:54 | 只看该作者
小弟今天遇上贵人了,多谢各位大大!
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
18
发表于 2009-4-23 07:02:01 | 只看该作者
显示金钱的窗口
完整精简版
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
#  显示金钱的窗口。
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    gold = commify($game_party.gold.to_s)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, gold, 2)        
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
  def commify(numstr)
    int ,frac = *numstr.split(".")
    int = int.gsub(/(\d)(?=\d{3}+$)/, '\\1,')
    int << "." << frac if frac
    return int
  end
end

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-21 13:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表