Ruby Language
Gjutning (typkonvertering)
Sök…
Gjutning till en sträng
123.5.to_s #=> "123.5"
String(123.5) #=> "123.5"
Vanligtvis kommer String()
bara att ringa #to_s
.
Metoder Kernel#sprintf
och String#%
uppträder liknande C:
sprintf("%s", 123.5) #=> "123.5"
"%s" % 123.5 #=> "123.5"
"%d" % 123.5 #=> "123"
"%.2f" % 123.5 #=> "123.50"
Gjutning till ett heltal
"123.50".to_i #=> 123
Integer("123.50") #=> 123
En sträng tar värdet på ett heltal i början, men tar inte heltal från någon annanstans:
"123-foo".to_i # => 123
"foo-123".to_i # => 0
Det finns dock en skillnad när strängen inte är ett giltigt heltal:
"something".to_i #=> 0
Integer("something") # ArgumentError: invalid value for Integer(): "something"
Gjutning till en flottör
"123.50".to_f #=> 123.5
Float("123.50") #=> 123.5
Det finns dock en skillnad när strängen inte är en giltig Float
:
"something".to_f #=> 0.0
Float("something") # ArgumentError: invalid value for Float(): "something"
Flöten och heltal
1/2 #=> 0
Eftersom vi delar två heltal är resultatet ett heltal. För att lösa detta problem måste vi kasta minst en av dem till Float:
1.0 / 2 #=> 0.5
1.to_f / 2 #=> 0.5
1 / Float(2) #=> 0.5
Alternativt kan fdiv
användas för att returnera det flytande punktsresultatet av delning utan att uttryckligen kasta någon av operandema:
1.fdiv 2 # => 0.5
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow