iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

Codewars Ruby Challenge in 30 Days系列 第 3

Codewars Ruby Challenge - Day 3/30

題目:

def format_money(amount)
  # 實作內容
end

答案需為:

puts format_money(39.99)  # 印出 $39.99
puts format_money(39.90)  # 印出 $39.90
puts format_money(39)     # 印出 $39.00

我的答案

def format_money(amount)
  "$#{'%.2f' % amount }"
  
  # 一開始自己的寫法
  # "$#{round(amount)}"
end

思路:

  1. 一開始想到應該跟 round 方法有關,後來嘗試執行發現不是(直覺果然很危險)
  2. 想不到其他方法,準備 google 但先查了小數點的英文是什麼最後用「ruby add zero after decimal」搜尋,在 Stackoverflow 找到適合的答案

龍哥建議的答案

def format_money(amount)
  "$#{ '%.2f' % amount }"
end

(摁好,大概是最好的答案了,跟 Stackoverflow 一樣呢~)

學習

  1. 複習了 round 的方法:如何使用 ->(39.555).round 與作用 ->「無條件進位到小數點後第 n 位」
  2. 龍哥提到 format 在 ruby 呈現數字格式上很好用,尤其是購物車。以這題來講,f 是 float 的意思,整個意思是「讓後面的數字顯示到小數點第二位,若不足則用 0 補滿」
'%.2f' % number

上一篇
Codewars Ruby Challenge - Day 2/30
下一篇
Codewars Ruby Challenge - Day 4/30
系列文
Codewars Ruby Challenge in 30 Days30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言