如何在浮点数中进行int回答

时间:2013-02-26 08:03:48

标签: int

a = x * 9 / y'x'都是int时,我必须将等式'y'的输出变为浮点数。例如x=64 y= 227但是当输入到等式时,我得到2而不是小数答案。

我如何编码:

int y = 227;
int x = 64;
Float a;
a = x * 9 / y;

5 个答案:

答案 0 :(得分:2)

其中一个数字应为float类型,以便进行有效的转换:a = x * 9.0f / y;

答案 1 :(得分:1)

你需要使用类型转换来浮动:

a = (float)x * (float)9 / (float)y;

不知道您使用的是哪种语言,但我正在写 C语言

我所做的是明确投射

显式强制转换(给定转换)数据类型的优先级高于自动转换。

Syntax:  

    (data_type) operand

其中操作数可以是变量或短语。

@yBee回答了什么 他正在使用隐式强制转换的概念,通过将9更改为9.0f表达式(x * 9.0f)变为浮点数并且浮动由int再次给予浮点数。

要理解这一点,您需要了解自动类型转换:

  

隐式强制转换(自动转换)的工作方式是数据类型的变量(操作数)长度较小(比第二个变量的数据类型)(操作数),内部转换为变量数字类型的数字长度更长。它可能听起来很混乱,但这是一个例子:

     

short int - > int - > unsigned int - > long int - > unsigned long int - > float - > double - > long double

@Alexei Levenkov正在做什么? 使用这两种技术。首先通过Explicit Casting将x转换为float,然后由于Implicit Casting而在float中进行计算。

实际上两个答案都比我的答案好。

答案 2 :(得分:1)

在大多数语言中,表达式为“float”的表达式中至少有一个元素将表示float类型的整个表达式:

  a = x * 9.0 / y;

你也可以明确地施放一些标记(取决于语法语法):

 a = (Float)x * 9 / y;

请注意,如果操作的优先级不同(即同一表达式中的+和*),您可能会密切关注要投射的内容。以下表达式可能会产生不同的结果(因为第一个表达式将x/9作为整数,然后才将其转换为“float”):

 a = x / 9 + (Float)y;
 a = (Float)x / 9 + y; 

答案 3 :(得分:0)

好的,当您使用整数设置任何数字时,要获得小数答案,右侧必须是浮点数或双精度数。就像这样

10/3 = 3

10 / 3.0 = 3.34

得到了吗?

在你的情况下,你可以做的是,

int y = 227; 
int x = 64;
Float a = x * 9 / (float)y;

答案 4 :(得分:0)

一种简单的方法是将最终结果乘以1.0。这将为您转换它。