gpt4 book ai didi

d - 通用数字文字

转载 作者:行者123 更新时间:2023-12-04 02:41:22 37 4
gpt4 key购买 nike

bool isUnit(Vec)(in Vec v, float tolerance = kindaSmallNumber){
import std.math: abs;
import std.conv: to;
auto length = v.lengthSquared;
return abs(to!(typeof(length))(1) - length) < tolerance;
}

这里我只想计算1 - length,但length 可以是double 或float 类型。我不想在运行时将 1 从整数转换为 floatdouble

我必须执行 to!(typeof(length))(1) - length 还是我可以只执行 1 - length1 将始终与 length 具有相同的类型?

最佳答案

1 的类型在那里无关紧要。它将自动转换为适合长度算术的类型。

来自 http://dlang.org/spec/expression.html#AddExpression

If either operand is a floating point type, the other is implicitly converted to floating point and they are brought to a common type via the usual arithmetic conversions.

所以它无论如何都是由编译器自动完成的(顺便说一句,当然,编译器是已知的,所以它不会在这里做任何运行时的事情)。

但对于其他想知道特定问题答案的人,您可以使用类型文字,如 1.0 或类型构造函数,如 typeof(length)(1).

关于d - 通用数字文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614290/

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