『スクリプト 汎用関数』 0埋め文字列の作成

投稿者:Cdv30200 aoi icon mini aoihikawa 投稿日:2011/08/29 16:17

0埋め文字列の作成
(ご自由にご利用ください)

#0埋め
def addZero(n, b)
    l = 0; c = n; r = ""; b = b - 1
    while c > 9
        c = floor(c / 10); l = l + 1
    end
    while l < b
        r = r + "0"; l = l + 1
    end
    r = r + n
    return r
end


 使用例
str = addZero(150, 8)   #"00000150"

コメントする

コメントするには、ログインする必要があります。

コメント一覧

            mini mosmoss(投稿日:2015/12/24 00:11, 履歴)

# ↓↓↓スクリプトはここから↓↓↓

#0埋め
def addZero(n, b)                        #数字nについて、b桁になるまでゼロを前に埋める 
    l = 0; c = n; r = ""; b = b - 1  #計算で使う変数の下準備

    while c > 9
        c = floor(c / 10); l = l + 1
    end

    # c すなわち nが 何桁の数字か を求める
    # nが一桁になるまで 何回10で割ることができるかを調べる
    #10で割ることができた回数 = l  つまりn は (l + 1) 桁の数字

    while l < b       
        r = r + "0"; l = l + 1
    end
    
    # 指示された桁数 - nの桁数 の数だけゼロを並べる

    r = r + n

    #並べたゼロを n の前にくっつける

    return r
end

# ↑↑↑スクリプトはここまで↑↑↑


n は c に入れるのに
b は b = b-1 と上書きして使うところで少し悩みましたが
たぶん理解できたと思います
Cdv30200 aoi icon mini aoihikawa(投稿日:2015/12/24 01:35, 履歴)
解説コメント、GJです
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/02 17:27, 履歴)
>foodmakesさま

0埋めとは、
桁の数が少ないときでも文字数を揃えるために
不足している分だけ「0」を追加することを言います。

例えば、デジタル時計で
「9時5分」を「09:05」と記載しているものがあります。
このとき、2文字になるように0埋めしている、というわけです。
User icon mini 退会したユーザー(投稿日:2011/09/02 14:43, 履歴)
ややこしいんだね
それ以前に0埋めってなに?(w
Logo1 mini fmy(投稿日:2011/08/30 01:21, 履歴)
これは結構かゆい所に届いてくれるものですねー。
早速使わせて頂きましたー。

スクリプト/コツ/時間(ミリ秒)を文字列で表示する関数

ルーキーさん達がよく定石アルゴリズムとも言える部分でつまずいて
制作時間がかかってしまっているような様子を時々伺いますが
やはりもったいないなーと思いますね。

僕なんかは下手なりにもこういうシステムを補う関数を作る事に
楽しみを見い出す事もあるので苦にならないのですが、
きっと全員がそういう訳ではないハズなので…。
Material 6858 mini akasata(投稿日:2011/08/29 20:22, 履歴)
これ、地味に便利そうですね~