2

就像在 C 和 C++ 中一样

double x

如何在红宝石中做到这一点?

还是要在浮动类型中?

我想跑

x=5/2

然后

x=2.5

代替

x=2
4

5 回答 5

8

如果至少有一个操作数是浮点数,则结果也将是浮点数。

5 / 2.0 # => 2.5
于 2013-05-15T11:26:19.987 回答
4

在 ruby​​ 中,您可以通过指定小数点来创建浮点数:

2 #=> integer
2.0 #=> float

如果将一个整数除以另一个整数,则得到一个整数。您必须在除法中使用浮点数:

5 / 2   #=> 2
5.0 / 2 #=> 2.5
5 / 2.0 #=> 2.5
于 2013-05-15T11:27:47.413 回答
2

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

于 2013-05-15T11:30:00.533 回答
1

变量在 Ruby 中没有类型,只有对象有。(并且“类型”的概念是潜在的,它不会在程序中表现出来。对象的“类型”是它所说的协议,即它响应的消息以及它如何响应这些消息。特别是,对象的类型不是它的类。)

于 2013-05-15T11:53:54.657 回答
0

默认情况下,在 ruby​​ 中,根据源代码,所有浮点数都是双倍的

要创建浮点值,您必须将 .0 添加到与整数值的差异。

注意:如果您在一个操作中使用两个整数,默认情况下结果是一个整数

5.0 # float
5   # integer
5 / 2 = 2 # integer
5 / 2.0 = 2.5 #float

ruby 源代码上的浮点定义

在此处输入图像描述

于 2016-05-11T12:58:34.243 回答