プログラミングのお題 ..
714:デフォルトの名無しさん
15/09/01 10:34:27.90 2zAmQ8cX.net
>>665 Squeak Smalltalk (日本語版 URLリンク(osdn.jp))
| fn |
fn := [:n :m |
| out units |
self assert: (n isInteger and: [n > 0] and: [n < 1e20]).
units := #('' 万 億 兆 京) readStream.
out := OrderedCollection new.
[n = 0 or: [units atEnd]] whileFalse: [
| val unit |
val := n \\ 1e4. n := n // 1e4.
unit := units next.
((m := m - 1) < 0 and: [val ~= 0]) ifTrue: [out addFirst: val asStringWithCommas, unit]].
out concatenation as: String
].
fn value: 123422343234 value: 0. "=> '1,234億2,234万3,234' "
fn value: 123422343234 value: 1. "=> '1,234億2,234万' "
fn value: 123422343234 value: 2. "=> '1,234億' "
fn value: 100000000000000039 value: 0. "=> '10京39' "
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
616日前に更新/308 KB
担当:undef