c++ - 可以平方的最大浮点值
问题描述
我有一个接受可选距离参数的函数dist
,但我的算法适用于平方距离。如果用户没有指定任何值,我希望dist
数字尽可能大。
Result foo(double dist = std::sqrt(std::numeric_limits<double>::max())) const;
上面的代码是安全的,还是会因为舍入错误而崩溃?使用(甚至)更丑陋的东西会更好吗
Result foo(double dist = std::sqrt(std::numeric_limits<double>::max() - 100)) const;
解决方案
如果你小心,你可以使用std::numeric_limits<double>::infinity
. 它会在比较中做正确的事情,如果你把它平方,它仍然是无限的。
推荐阅读
- angular - 如何在 Angular 6 中选择段落?
- xamarin - Xamarin 加载图像与加载进度条上传
- django - 在 python 中安装 mysqlclient 时遇到问题
- javascript - 如何将 sessionStorage 用于登录用户的网页?
- swift - 基本表视图问题
- hibernate - @DataJpaTest 不适用于 @GenericGenerator
- java - 无法通过 IOS 应用程序中的辅助功能检查器识别 xpath
- c# - 带有绑定到自定义图形的按钮的 Xamarin C# XAML 跨平台
- html - 视频 50% 高度
- android - 构建 gradle 时出错 - com.google.android.gms:play-services-basement 正在被其他各种库请求