Day 5 : Ruby中的「數字、符號」 - iT 邦幫忙
文章推薦指數: 80 %
puts 3.33.round #轉成整數,四捨五入puts 3.33.floor #轉成整數,無條件捨去puts 3.33.ceil #轉成整數,無條件進位puts 3.33.to_i #小數轉整數,無條件捨去 ...
第12屆iThome鐵人賽
DAY
5
0
自我挑戰組
Ruby名詞解釋總匯系列第
5篇
Day5:Ruby中的「數字、符號」
12th鐵人賽
ruby
rails
rubyonrails
chiayinin
團隊貓肥加潤五倍祝福
2020-09-1210:28:52875瀏覽
數字:整數Integer、浮點數Float
*英文發音
首先來聽聽英文發音~。
整數Integer
浮點數Float
名詞解釋
數字型別包含:
整數Integer:可數的,EX:1,2,3,4,5......。
浮點數Float:小數點,EX:3.33。
Ruby世界的數字?
因為Ruby是物件導向的程式語言,大多數看到的皆是「物件」,肉眼看起來像數字外觀的數字也是物件的一種唷。
△肉眼觀世間,曖昧難辨
puts1+2
印出來->3
以上看起來簡簡單單的加法運算,但其實加號在Ruby中只是一般的方法(method),省略了小括號。
原來的樣子應該是如下:
puts1.+(2)
印出來->3
這個加號,事實上是「數字物件1」呼叫了「+」這個方法,並且把「數字物件2」當做參數傳進去。
也因為他是一個方法,所以也可以重新改寫它原來的功能,讓1+1不等於2都是有可能的。
浮點數轉整數
puts3.33.round#轉成整數,四捨五入
puts3.33.floor#轉成整數,無條件捨去
puts3.33.ceil#轉成整數,無條件進位
puts3.33.to_i#小數轉整數,無條件捨去
型別轉換Conversions
字串可以使用以下轉型方法:
to_i:轉整數
to_f:轉浮點數
to_sym:轉符號
to_s:轉字串
如下範例:
p"169.99cm".to_f#169.99
p"169.99cm".to_i#169
p"169.99cm".to_sym#:"169.99cm"
p:169cm.to_s#"169cm"
整數除法
因為Ruby是物件導向程式語言,看過去的東西大多為物件,因此在Ruby世界裡面,整數除以整數會得到整數10/3==3。
*那要如何得到小數點?
除數或被除數其中一個改小數點即可!
10.0/3==3.333333
10/3.0==3.333333
10.0/3.0==3.333333
符號Symbol
*英文發音
首先來聽聽英文發音~。
https://youtu.be/EJg47hnavNM
名詞解釋
在了解符號之前,先來加深「物件」的概念。
在Ruby的世界裡,看到的大多是物件,如以下:
1000:數字物件
"Worldpeace":字串物件
:vegan:符號物件
由以上可以得知,「符號Symbol」使用冒號:開頭,他類似一種無法修改的字串,我們會說他是「有名字的物件anobjectwithaname」。
要注意的是,「符號」不是「變數」,是值,本身不會只向任何東西。
#「變數」可以指向
say="helloworld!"
#「符號」不可以指向
:say="helloworld!"->會出錯!
*那字串跟符號哪裡不一樣?
字串的效能會比符號差了一點點,兩者最主要的差異在於「記憶體的管理方式」,由於Ruby中的每個字串都是新的物件,所以即使是相同的字串也會佔用不同的記憶體,而符號則是重復利用:
puts"string".object_id#2157007700"abc4e"
name=:abcde
name[3]=4
pname->undefinedmethod`[]='for:abcde:Symbol(NoMethodError)
*符號的功用是什麼呢?
因為以上的特性,讓符號在Ruby中主要用作hash的鍵(key)或者是用來指稱方法的名稱。
hash={:key=>"12345",:symbol=>"string"}
總整理
immutable:被建立後就不能改變。
任何「符號」都指稱到同一個記憶體位置,因此較省記憶體。
以「符號」當作鍵(key)的效能會比「字串」當作鍵的效能來得好。
回家作業
請回答以下問題:
1.請問符號是什麼?跟變數一樣嗎?
2.字串嵌入Stringinterpolation是什麼?如何實作?
3.請寫出以下p後會印出什麼?
p3.30393.floor
p1.33.to_i
p:hello.to_s
參考資料
更多的衍伸用法,可以參考龍哥的書《為你自己學RubyonRails》:數字、字串、陣列、範圍、雜湊、符號
小殘的程式光廊:Ruby教學-符號(Symbol)
PJCHENder未整理筆記Symbol(符號)
留言
追蹤
檢舉
上一篇
Day4:Ruby中的「資料型別、字串」
下一篇
Day6:Ruby中的「陣列、範圍」
系列文
Ruby名詞解釋總匯
共14篇
目錄
RSS系列文
訂閱系列文
4人訂閱
10
Day10:Ruby的「物件導向程式設計-類別」
11
#Day11:Ruby的「物件導向程式設計-方法」
12
Day12:Ruby的「註解、流程控制」
13
Day13:學習網站開發,RubyonRails來了!
14
Day14:Rails中的「MVC」!
完整目錄
尚未有邦友留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20477篇
完賽人數
572人
鐵人賽最新文章
.NetCoreWebApi_筆記21_Swagger及OpenAPI介紹與配置使用方式_API管理與測試探討
.NetCoreWebApi_筆記20_api結合ADO.NET資料庫操作part8_新聞文章查詢
.NetCoreWebApi_筆記19_api結合ADO.NET資料庫操作part7_新聞文章的編輯更新與刪除
.NetCoreWebApi_筆記18_api結合ADO.NET資料庫操作part6_新聞文章表格陳列查詢
.NetCoreWebApi_筆記17_api結合ADO.NET資料庫操作part5_新聞文章新增_新聞類別元素透過API綁定方式
[Bonus系列]-使用useCallback&useMemo的正確時機是什麼?
大盤到底能不能攻上一萬八??
gotodie?那個goto到底能不能用啊?
2021/12/12更新
予焦啦!一夢終須醒......
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
[Day03]tinyML開發板介紹
永豐金融API測試員
[Day01]在享受tinyML這道美食之前
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
公司想要架設一個網購物站,但是不知道要怎麼規劃預算
正要準備開始上CCNA…
無網際網路時,請問兩台電腦如何‘無線’遠端連線
遠端監控電腦效能
如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行?
關於網頁顯示問題
mssql資料庫搬移時,怎樣出所有需要的資料會比較好?
請問有在做關貿資料串接的資訊公司嗎?
NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選?
照片辨識比對軟體開發
IT邦幫忙
站方公告
【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
正要準備開始上CCNA…
如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行?
NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選?
遠端監控電腦效能
無網際網路時,請問兩台電腦如何‘無線’遠端連線
照片辨識比對軟體開發
關於網頁顯示問題
公司想要架設一個網購物站,但是不知道要怎麼規劃預算
mssql資料庫搬移時,怎樣出所有需要的資料會比較好?
DefaultDomainPolicy密碼複雜度
熱門文章
大盤到底能不能攻上一萬八??
[Bonus系列]-使用useCallback&useMemo的正確時機是什麼?
【教學】簡單救回電腦資料
為了轉生而點技能-JavaScript,day23(Promise介紹
12.MYSQL淺談NULL
數位簽章(digitalsignature)
什麼是功能分解?
D9.學習基礎C、C++語言
7.MYSQL表格程式語法
javascript基礎功能1
一週點數排行
更多點數排行
海綿寶寶(antijava)
㊣浩瀚星空㊣(yoching)
小山丘(a243318490)
居然解出來了(partyyaya)
ccenjor(ccenjor)
純真的人(jer5173)
fillano(fillano)
Gary(mosbbs)
PPTaiwan(Pochengtaiwan)
souda(souda)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1Day 5 : Ruby中的「數字、符號」 - iT 邦幫忙
puts 3.33.round #轉成整數,四捨五入puts 3.33.floor #轉成整數,無條件捨去puts 3.33.ceil #轉成整數,無條件進位puts 3.33.to_i #小數...
- 2取整函數- 維基百科,自由的百科全書
根據Beatty定理,每個正無理數都可以通過高斯符號製造出一個整數集的分劃。 最後,對於每個正整數k,其在p 進位下的表示有 ...
- 3運算符號和函數列表
... 可在計算公式中套用的欄位; 運算符號和函數列表; 運算符號與函數的使用範例 · [&運算符號]文字與數值的結合 · [ROUND函數]四捨五入、無條件進位、無條件捨去 ...
- 4高斯符號─ 取底、取頂、函數圖形 - 環遊數界
例如:[3.6]=3,[1]=1,[-2.2]=-3。 後來,高斯符號又發展成兩種符號,分別是取底符號(floor function)和取頂符號(ceiling funcation) ...
- 5無條件進位符號在PTT/Dcard完整相關資訊 - 你不知道的歷史故事
關於「無條件進位符號」標籤,搜尋引擎有相關的訊息討論:. 運算符號和函數列表將條件反轉。 ROUND, 將數值四捨五入。 ROUNDDOWN, 將數值無條件捨去。