就像在 C 和 C++ 中一样
double x
如何在红宝石中做到这一点?
还是要在浮动类型中?
我想跑
x=5/2
然后
x=2.5
代替
x=2
如果至少有一个操作数是浮点数,则结果也将是浮点数。
5 / 2.0 # => 2.5
在 ruby 中,您可以通过指定小数点来创建浮点数:
2 #=> integer
2.0 #=> float
如果将一个整数除以另一个整数,则得到一个整数。您必须在除法中使用浮点数:
5 / 2 #=> 2
5.0 / 2 #=> 2.5
5 / 2.0 #=> 2.5
Ruby 是动态类型的,因此没有明确的方式将变量转换为特定类型。例如:
a = "a" # here a is a String
a = 5 # now a is a Fixnum
a = 5.0 # now a is a Float
是完全有效的。
那么当你说 时会发生什么5/2
?Ruby 在第一个操作数(在本例中为整数)中查找/
运算符,然后使用第二个操作数(也是一个整数)调用该函数。因此 Ruby 假设您需要整数除法。
解决方案是将其中一个运算符设为浮点数,这可以通过至少两种方式完成:
5 / 2.0
或者
5 / 2.to_f
变量在 Ruby 中没有类型,只有对象有。(并且“类型”的概念是潜在的,它不会在程序中表现出来。对象的“类型”是它所说的协议,即它响应的消息以及它如何响应这些消息。特别是,对象的类型不是它的类。)