gpt4 book ai didi

vala:两个整数的商总是一个整数。为什么?

转载 作者:行者123 更新时间:2023-12-04 06:11:35 37 4
gpt4 key购买 nike

新手问题:

void main () {
int A = 1;
int B = 2;
double C = A / B;
stdout.printf("C value is: %g\n", C);
}

这会打印:“C 值为:0”

void main () {
int A = 1;
double B = 2;
double C = A / B;
stdout.printf("C value is: %g\n", C);
}

这会打印:“C 值为:0.5”

我不明白为什么两种情况下结果都不是 0.5。

最佳答案

除法运算是对两个整数进行的,所以结果是一个整数。之后将其分配给 double 这一事实不会改变这一点。

你在你的问题中所做的,隐式转换是显式的,是

int A = 1;
int B = 2;
double C = (double) (A / B);

但是,如果您想使用 double 执行除法运算,您必须明确地将至少一个操作数转换为 double :

int A = 1;
int B = 2;
double C = ((double) A) / B;

有关算术运算的规则,请参阅 arithmetic expressions section of the Vala Manaual .相关位:

If both operands are of integer types, then the result will be the quotient only of the calculation (equivalent to the precise answer rounded down to an integer value.) If either operand is of a floating point type, then the result will be as precise as possible within the boundaries of the result type (which is worked out from the basic arithmetic type rules.)

关于vala:两个整数的商总是一个整数。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35305625/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com