首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby语言转换浮点数的策略

ruby语言转换浮点数的策略
EN

Stack Overflow用户
提问于 2010-11-07 16:19:51
回答 2查看 919关注 0票数 1

因此,我编写了一个简单的.rb文件,将浮点数转换为字符串。该字符串以单词形式返回浮点数。所以如果我有11.11,那么我就有11美元11美分,到目前为止,我已经扩展了float类,它运行良好。我不知道怎么把11美分换成11美分。en.numwords会反击11点1。我曾想过尝试一种散列来解决我的问题,其中11=>eleven是美分。有什么想法可以让我实现这一点吗?也许实现这一点的更好方法是什么?

这是我到目前为止所知道的:

代码语言:javascript
复制
 require 'rubygems'
 require 'linguistics'
 Linguistics::use( :en )



 class Float
 def to_test_string
 puts self #check
 puts self.en.numwords
 self.en.numwords
 end

 end

 puts "Enter two great floating point numbers for adding"
 puts "First number"
 c = gets.to_f
 puts "Second number" 
 d = gets.to_f
 e = c+d
 # puts e
 puts e.to_test_string
 puts "Enter a great floating number! Example 10.34"
 a = gets.to_f
 # puts a
 puts a.to_test_string

谢谢你的帮助!发布一些代码,这样我就可以尝试一些想法了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-07 17:00:52

这个问题可以通过将浮点数拆分为两个值来解决:美元和美分。

代码语言:javascript
复制
require 'rubygems'
require 'linguistics'
Linguistics::use( :en )

class Float
    def to_test_string
        puts self #check

        #Split into dollars and cents
        cents = self % 1
        dollars = self - cents
        cents = cents * 100

        text = "#{dollars.to_i.en.numwords} dollars and #{cents.to_i.en.numwords} cents"

        puts text
        text
    end
end

puts "Enter two great floating point numbers for adding"
puts "First number"
c = gets.to_f
puts "Second number" 
d = gets.to_f
e = c+d
# puts e
puts e.to_test_string
puts "Enter a great floating number! Example 10.34"
a = gets.to_f
# puts a
puts a.to_test_string
票数 0
EN

Stack Overflow用户

发布于 2010-11-07 17:00:32

这里有一个解决方案:根据小数点分隔符将数字分成两个子串,分别对每个子串调用en.numwords,然后用" point“连接结果字符串。大致是这样的:

代码语言:javascript
复制
require "rubygems"
require "linguistics"
Linguistics::use(:en)

class Float
  def my_numwords
    self.to_s.split('.').collect { |n| n.en.numwords }.join(' point ')
  end
end

(11.11).my_numwords # => eleven point eleven
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4116961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档