必须有一个简单的方法来实现这一点,我有一个包含整数的DB字段,我想将其重新格式化为浮动显示。
作为整数,我的值看起来像6500
,我希望它显示为65.00
在我的模型中,我试图通过创建以下方法来实现这一目标
def get_payment_amount_as_number
amount = self.payment_amount
return '%.02f' % self.payment_amount.to_f
end
导致显示以下内容:6500.00
最好的方法是剥离初始零或简单地插入小数点?
虽然我认为这是一个与ruby相关的问题,但我不确定rails是否已经有一个方便的助手了?
谢谢。
答案 0 :(得分:2)
您可以将数字除以100:
payment_amount = 6595
'%.02f' % payment_amount.fdiv(100)
#=> "65.95"
'%.02f' % (payment_amount / 100.0)
#=> "65.95"
或者您可以将数字转换为字符串并插入小数点:
payment_amount.to_s.rjust(3, '0').insert(-3, '.')
#=> "65.95"
Rails还提供了几个helpers格式数字:
number_to_currency(65.95)
#=> "$65.95"
number_to_currency(1000)
#=> "$1,000.00"
您可能需要查看money-rails gem,它提供从美分到money个对象的映射。
答案 1 :(得分:1)
你这样做只是......
string insertquery = "INSERT INTO [dbo].[tdn_Winners] ([MemberId] ,
[PrizeNodeId] ,[CampaignNodeId] ,[TransactionId]) VALUES(@MemberId,
@PrizeNodeId, @CampaignNodeId, @TransactionId)";
我找到另一个
def get_payment_amount_as_number
amount = self.payment_amount / 100
#to convert amount to float
amount.to_f
end
答案 2 :(得分:0)
int_value = 6500
float_value = float_value = '%.2f' % (int_value / 100.0)
puts int_value: int_value, float_value: float_value
一切都好!