我std::abs()在浏览cppreference时读到了这个函数.
在那个页面上我也看到了一个std::labs()功能.它与其中一个std::abs()重载(一个用于long)具有相同的原型.
long abs( long n );
long labs( long n );
Run Code Online (Sandbox Code Playgroud)
和
long long abs( long long n );
long long llabs( long long n );
Run Code Online (Sandbox Code Playgroud)
所以,
std::labs()是什么?std::labs()?std::abs()和之间有什么区别std::labs()?有没有办法在angular2绑定中使用数学函数?
例
<div class="partition-panel">
<b class="pull-left">{{Math.round(variable/12*2)}}</b>
<b class="pull-right">{{Math.round(variable/12*2)}}</b>
</div>
Run Code Online (Sandbox Code Playgroud)
当试图使用这个我得到错误
Cannot read property 'round' of undefined
Run Code Online (Sandbox Code Playgroud)
对于angular1,也回答了类似的问题
什么是Math.Floor()VBA中的JavaScript 等价物?此函数应删除所有小数位并仅返回整数.
为什么当我做以下事情时......
Math.Round(0.75, 1, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)
我得到0.8
但是当我做以下事情时......
Math.Round(0.575, 2, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)
我不懂0.58.相反,我得到0.57.我想要任何5和更高的东西,所以0.575应该是0.58.
我对这篇文章感到兴奋:/sf/answers/4037224201/,我考虑使用-fno-math-errno. 但我想确保我不会损害我正在开发的软件的行为。
因此,我检查了(相当大的)代码库以查看errno正在使用的位置,并且我想确定这些用法是否会干扰-fno-math-errno. 但如何做到这一点呢?文档说:
-fno-数学错误号
在调用使用单条指令执行的数学函数(例如 sqrt...)后,请勿设置 errno
但我如何知道单条指令执行了哪些数学函数呢?这有记录在某处吗?在哪里?
似乎我使用的代码库errno特别依赖于调用strtol和使用流时。我猜这strtol不是用一条指令执行的。它是否被认为是一个数学函数?我怎样才能确定?
当我尝试导入数学时,它向我抛出一个错误:
''错误CS0234:命名空间'Unity'中不存在类型或命名空间名称'Mathematics'(您是否缺少程序集引用?)''
我尝试过使用 System.Mathematics、使用 Unity.Mathematics我还尝试输入 Math 而不是 Mathematics 。我不知道为什么会抛出错误,我使用 Notepad++ 编写脚本。
[1]: https://i.stack.imgur.com/vNs9J.png <--- 错误图片
这是Mathf.FloorToInt的脚本参考文档正如您所看到的,它应该将 -0.5 舍入到 -1。由于某种原因,当与我的计算一起使用时,它似乎将其返回为 0。
我有相同函数的两个版本,它们的工作方式非常相似,但输出不同。我的代码只会向这些函数提交 3 到 18 之间的整数。
此版本的行为就像使用 Mathf.CielToInt (在 statRoll = 9 的情况下返回 0):
public int getBonus(int statRoll)
{
int result = Mathf.FloorToInt((statRoll - 10) / 2);
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是有效的版本(在 statRoll = 9 的情况下返回 -1):
public int getBonus(int statRoll)
{
float initial = statRoll - 10;
float divided = initial / 2;
int result = Mathf.FloorToInt(divided);
return result;
}
Run Code Online (Sandbox Code Playgroud) 我正在写一个应该计算角度(以度为单位)的类,经过长时间的尝试,我不能让它工作.
当r = 45&h = 0时,总和应该在77,14°左右
但它返回NaN - 为什么?我知道它必须是Math.Atan-Method和无效值的东西.
我的代码:
private int r = 0, h = 0;
public Schutzwinkelberechnung(int r, int h)
{
this.r = r;
this.h = h;
}
public double getSchutzwinkel()
{
double sum = 0;
sum = 180 / Math.PI * Math.Atan((Math.Sqrt(2 * h * r - (h * h)) - r * Math.Sin(Math.Asin((Math.Sqrt(2 * h * r)) / (2 * r)))) / (h - r + r * (Math.Cos(Math.Asin(Math.Sqrt(2 * h * r) / (2 …Run Code Online (Sandbox Code Playgroud) 我需要以下快速 exp2 函数的双精度版本,你能帮助我吗?请不要回答说这是一个近似值,因此双精度版本毫无意义,将结果转换为 (double) 就足够了..谢谢。我在某处找到的对我有用的函数如下,它比 exp2f() 快得多,但不幸的是我找不到任何双精度版本:
inline float fastexp2(float p)
{
if(p<-126.f) p= -126.f;
int w=(int)p;
float z=p-(float)w;
if(p<0.f) z+= 1.f;
union {uint32_t i; float f;} v={(uint32_t)((1<<23)*(p+121.2740575f+27.7280233f/(4.84252568f -z)-1.49012907f * z)) };
return v.f;
}
Run Code Online (Sandbox Code Playgroud)