gpt4 book ai didi

C、舍入问题。 UWORD、整数和 double

转载 作者:行者123 更新时间:2023-11-30 15:52:26 25 4
gpt4 key购买 nike

我对这些操作的结果有几个疑问。

首先,如果我有两个整数,将它们相除并将结果保存为 double 。是否存在任何舍入问题,例如 1/2 等于 0.5 而不是 1。

double ratio = int1/int2;

第二,如果我现在有了这个比率并将其乘以一个 UWORD 会有什么问题吗?

UWORD word1 = 4098;
UWORD word2 = ratio * word1;

顺便说一下,当我这样做时,我确实收到了编译器警告

 narrowing or signed-to-unsigned type conversion found: double to unsigned short

最佳答案

您需要将 int1 转换为 double,以便编译器知道使用浮点计算(而不是整数):

double ratio = ((double) int1) / int2;

要将 ration * word1 的浮点计算存储在 UWORD 中,您需要再次转换它(以防止出现警告):

UWORD word2 = (UWORD) (ratio * word1);

注意:这会截掉小数,如果您需要适当的舍入,请尝试 round() function ,可从 math.h 获取。 (再次强调,通过正确的类型转换!)

关于C、舍入问题。 UWORD、整数和 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440587/

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