gpt4 book ai didi

c - 为什么在不需要时费心使用 float / double 文字?

转载 作者:太空狗 更新时间:2023-10-29 15:19:44 25 4
gpt4 key购买 nike

当您需要一个整数值时,为什么要使用 double 或浮点字面量,而整数字面量无论如何都会隐式转换为 double / float ?当需要分数值时,为什么还要添加 f(以生成浮点文字),无论如何都会将 double 转换为 float?

比如我经常看到类似下面的代码

float foo = 3.0f;
double bar = 5.0;
// And, unfortunately, even
double baz = 7.0f;

void quux(float foo) {
...
}

...

quux(7.0f);

但据我所知,它们等同于

float foo = 3;
// or
// float foo = 3.0;
double bar = 5;
double baz = 7;
quux(9);

如果您使用的是重载语言(c++、java),我可以理解方法调用,如果函数重载(或将来会重载),它实际上会产生功能上的差异,但我更担心使用 C(在较小程度上是 Objective-C),它没有重载。

那么有什么理由需要额外的小数和/或f?特别是在初始化的情况下,声明的类型就在那里

最佳答案

许多人通过惨痛的教训学会了这一点

double x = 1 / 3;

没有按预期工作。因此,他们(包括我自己)通过使用浮点文字而不是依赖隐式转换来进行防御性编程。

关于c - 为什么在不需要时费心使用 float / double 文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23898251/

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