gpt4 book ai didi

c - 打印具有两位小数的 double 值(来自整数表达式)

转载 作者:行者123 更新时间:2023-11-30 20:17:34 28 4
gpt4 key购买 nike

我想用c语言计算100000, 200000, 300000的乘积,即6000000000000000。但是我需要用一个double值来回答,小数点后有两个零。

我使用了以下代码:

long double result = 100000 * 200000 * 300000;
printf("%.2LF", result);

预期输出:6000000000000000.00
实际输出:-593035264.00

最佳答案

(根据Weather Vanes评论做出回答,将其变成问答对,如果他介意的话可以删除。)

表达式100000 * 200000 * 300000执行整数计算并溢出,这解释了您观察到的看似不相关的结果值。

尝试改为 100000.0 * 200000.0 * 300000.0(double)100000 * 200000 * 300000

原因?
表达式的计算不考虑目标变量(及其类型),
即您需要在 = 右侧强制进行浮点计算。

注意大卫的有用评论:
double 的最大范围是 1.79769e+308——足以满足您的计算。

关于c - 打印具有两位小数的 double 值(来自整数表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024727/

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