如果我有一个像3.75这样的float,我怎样才能将它分成整数3和float0.75?我是否必须将float转换为字符串,然后用“.”拆分字符串,然后再将部分转换为整数和float,或者是否有更优雅或“正确”的方法来执行此操作? 最佳答案 为此,您可以使用带参数1的Numeric#divmod:Returnsanarraycontainingthequotientandmodulusobtainedbydividingnumbynumeric.a.divmod1=>[3,0.75]如果你想得到精确的值,BigDecimal也可以使用
我需要比较一个数据集,其中一批数据带有带有小数点的货币,例如246.54新数据删除了小数点,没有四舍五入,只有246...所以我需要删除小数点从第一批开始,所以我可以比较。如果不四舍五入,我该怎么做? 最佳答案 使用地板功能。它给出小于或等于您输入的任何数字的第一个整数。1.9.3-p194:003>i=246.54=>246.541.9.3-p194:004>i.floor=>246 关于ruby-舍去小数点,我们在StackOverflow上找到一个类似的问题:
在Ruby中,我该怎么做:number_total=records/per_page其中per_page=100和records=1050,然后四舍五入以便没有小数?那么,不是10.5,而是11? 最佳答案 根据评论进行编辑number_total=(records/per_page.to_f).ceil 关于ruby-如何设置变量除以四舍五入到小数点后0位?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.
我的数据库中的纬度和经度值精确到小数点后10位:+----+---------------+-----------------+|id|lat|lng|+----+---------------+-----------------+|55|34.4208305000|-119.6981901000||56|30.2671530000|-97.7430608000|我需要查询数据库进行匹配,但我当前的变量是一个只有6位小数的float:self.lat=>30.267153如何将我的float转换为具有额外的小数位以便获得匹配项?myloc=Marker.where("lat=?",se
这个问题在这里已经有了答案:关闭11年前。社区在20天前审查了是否重新打开此问题并使其关闭:原始关闭原因未解决PossibleDuplicate:Rails3.Howdodisplaytwodecimalplacesineditform?我知道我可以使用sprintf来限制小数点后两位。当我在表格或表格中重新显示价格时,有时我会得到80,而不是80.00。从价格输入数据库的那一刻起,就将价格保留在小数点后两位不是更好吗?这样,无论何时显示,它都会始终显示两位小数。如果是,怎么办?
我想将BigDecimal对象转换为保留两位小数的货币值。我不想四舍五入。我该怎么做?以下方法均无效:v=BigDecimal("7.1762")w=BigDecimal("4.2")v.to_s('2F')#=>"7.1762"v.to_s('F')#=>"7.1762"v.to_s('%0.2F')#=>"0.71762E1"v.to_s('%0.2f')#=>"0.71762E1"v.truncate(2).to_s('F')#=>"7.17"#Thisonelookslikeitworkedw.truncate(2).to_s('F')#=>"4.2"#Butitdoesn't
根据某些条件将数组拆分为多个数组的最简单方法是什么?在我的场景中,我需要将整数和字符串值移动到不同的数组。我尝试了split方法,但没有按预期工作。x=[1,2,3,"a","b",4]x.split{|item|item.kind_of?Fixnum}在C#中,Linq中有一个groupby选项,可以帮助您根据条件对对象进行分组。Object上是否有类似的方法(不使用activerecord)?有没有简单的方法? 最佳答案 您正在寻找Enumerable#partition:x=[1,2,3,"a","b",4]numbers,n
我想在Rails中获取小数部分的小数部分。例如,我有一个数字“1.23”,我想得到“23”这可能太简单了,但是有人知道我该怎么做吗? 最佳答案 尝试使用取模法:1.23.modulo(1)=>0.23在这里阅读更多:http://www.ruby-doc.org/core-1.9.3/Numeric.html#method-i-modulo或者您可以将float转换为整数并从原始浮点值中减去它。1.23-1.23.to_i=>0.23 关于ruby-on-rails-获取十进制数的小数部
我很喜欢格式化一个float,但如果没有相关的float,我希望它显示为一个整数。即1.20->1.2x1.78->1.78x0.80->0.8x2.00->2x我可以通过一些正则表达式来实现这一点,但想知道是否有一个sprintf-only方法可以做到这一点?我在ruby中懒洋洋地这样做:("%0.2fx"%(factor/100.0)).gsub(/\.?0+x$/,'x') 最佳答案 您想使用%g而不是%f:"%gx"%(factor/100.00) 关于ruby-如果floa
我正在处理货币,我想将数字向下舍入到小数点后两位。即使数字是500.0,我也希望它是500.00以保持一致。当我执行“500.00”.to_d时,它会将其转换为500.0。改变这种行为的好方法是什么?我还使用这种方法向下舍入到2位数字,并确保它始终有2位小数。defself.round_down(x,n=2)s=x.to_sl=s.index('.')?s.index('.')+1+n:s.lengths=s[0,l]s=s.index('.')?s.length-(s.index('.')+1)==1?s 最佳答案 除了mcfin