|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi you all,
I'm trying to format a Bignum such as 1012345556 into 1.012.345.556 (separating the thousands). I've seen the extension of Numeric [1] can do that but, how can I convert my Bignum to a Numeric? Thanks. [1] http://extensions.rubyforge.org/rdoc...s/Numeric.html -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Alle sabato 5 gennaio 2008, Damaris Fuentes ha scritto:
> Hi you all, > > I'm trying to format a Bignum such as 1012345556 into 1.012.345.556 > (separating the thousands). > I've seen the extension of Numeric [1] can do that but, how can I > convert my Bignum to a Numeric? > > Thanks. > > [1] http://extensions.rubyforge.org/rdoc...s/Numeric.html You don't need to convert a Bignum into a Numeric because it already is: Bignum is a subclass of Integer, which is a Subclass of Numeric. Stefano |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Hi,
> You don't need to convert a Bignum into a Numeric because it already is: > Bignum is a subclass of Integer, which is a Subclass of Numeric. I get this: "undefined method `format_s' for 10067064106:Bignum" So my question is, I'm afraid, how can I install the Numeric extension? (I always thought the extensions come with the Ruby installation...) Thanks. -- Posted via http://www.ruby-forum.com/. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Alle sabato 5 gennaio 2008, Damaris Fuentes ha scritto:
> Hi, > > > You don't need to convert a Bignum into a Numeric because it already is: > > Bignum is a subclass of Integer, which is a Subclass of Numeric. > > I get this: > "undefined method `format_s' for 10067064106:Bignum" > > So my question is, I'm afraid, how can I install the Numeric extension? > (I always thought the extensions come with the Ruby installation...) > > Thanks. If you have already rubygems installed, you can install extensions through it: gem install -r extensions (if you're on unix, you'll need to use sudo to do this). If you don't have rubygems installed, you can install it (look at the rubyforge page for rubygems for how to do it) or install extensions by hand. To do this, go to the extensions project page on rubyforge( http://rubyforge.org/projects/extensions/ ), follow the download link and download the tgz file. At this point, you need to extract the files in the tgz file and put them somewhere ruby will look for them (you can get a list of such places looking at the $: global variable from irb). Depending on the operating system you use, these paths may vary. For instance, on my gentoo system, they are: /usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i686-linux /usr/lib/ruby/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i686-linux The most appropriate place in this case should be /usr/lib/ruby/site_ruby/1.8. Another option is to put the files in any directory and add it to the ruby load path either via the environment variable RUBYLIB or using the -L switch when calling ruby or modifying the $: variable from inside your ruby program. I hope this s Stefano |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Ok,
I've executed: gem install -r extensions And "extensions-0.6.0" has been installed (thanks! ) (I've checkedit), but the error of "undefined method `format_s' for 10067064106:Bignum" still appears. (I'm working with Rails) Stefano Crocco wrote: > Alle sabato 5 gennaio 2008, Damaris Fuentes ha scritto: >> >> Thanks. > > If you have already rubygems installed, you can install extensions > through it: > > gem install -r extensions > > (if you're on unix, you'll need to use sudo to do this). > > If you don't have rubygems installed, you can install it (look at the > rubyforge page for rubygems for how to do it) or install extensions by > hand. > To do this, go to the extensions project page on rubyforge( > http://rubyforge.org/projects/extensions/ ), follow the download link > and > download the tgz file. At this point, you need to extract the files in > the > tgz file and put them somewhere ruby will look for them (you can get a > list > of such places looking at the $: global variable from irb). Depending on > the > operating system you use, these paths may vary. For instance, on my > gentoo > system, they are: > > /usr/lib/ruby/site_ruby/1.8 > /usr/lib/ruby/site_ruby/1.8/i686-linux > /usr/lib/ruby/site_ruby > /usr/lib/ruby/1.8 > /usr/lib/ruby/1.8/i686-linux > > The most appropriate place in this case should be > /usr/lib/ruby/site_ruby/1.8. > > Another option is to put the files in any directory and add it to the > ruby > load path either via the environment variable RUBYLIB or using the -L > switch > when calling ruby or modifying the $: variable from inside your ruby > program. > > I hope this s > > Stefano -- Posted via http://www.ruby-forum.com/. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Alle sabato 5 gennaio 2008, Damaris Fuentes ha scritto:
> Ok, > > I've executed: > gem install -r extensions > > And "extensions-0.6.0" has been installed (thanks! ) (I've checked> it), but the error of > "undefined method `format_s' for 10067064106:Bignum" > still appears. > > (I'm working with Rails) > > Stefano Crocco wrote: Yes, I forgot to add that you need to use require 'extensions/numeric' in the file where you use format_s Stefano |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Ok, this works with the "require" statement (I've put it in
environment.rb) Well, however, this does not work as it was expected. I've made an script as this: ***** require 'extensions/numeric' n = 10067064106.format_s(:eu, :sep => '.') puts n ****** and the output is 0.067.064.106, without the first "1". Why is it deleting the first digit? Is Numeric valid just for numbers of 11 digits? Lots of thanks. Stefano Crocco wrote: > Alle sabato 5 gennaio 2008, Damaris Fuentes ha scritto: >> (I'm working with Rails) >> >> Stefano Crocco wrote: > > Yes, I forgot to add that you need to use > > require 'extensions/numeric' > > in the file where you use format_s > > Stefano -- Posted via http://www.ruby-forum.com/. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Damaris Fuentes wrote:
> Hi you all, > > I'm trying to format a Bignum such as 1012345556 into 1.012.345.556 > (separating the thousands). Leaving aside the Numeric extension for a minute, this bit of code solves the problem. x = 12345678901234 t = x.to_s.reverse.gsub(/(\d){3}(?=\d)/) {|p| p + '.'}.reverse puts t I've seen other regexp solutions to this problem on this list, but the above code is what I came up with on the spur of the moment. -- RMagick: http://rmagick.rubyforge.org/ RMagick 2: http://rmagick.rubyforge.org/rmagick2.html |
|
![]() |
| Outils de la discussion | |
|
|