avatar
q*4
2
hi,
any round function or similar things in C/C++?
such as round(5.5) = 6; round(6.4) =6...
thanks,
avatar
g*n
3
mozbackup.

【在 b*********n 的大作中提到】
: 每次重装都要config server setting很麻烦
avatar
P*e
4
inline int round(double r)
{
if (r > 0)
return (int)(r+0.5);
else return (int)(r-0.5);
}

【在 q****4 的大作中提到】
: hi,
: any round function or similar things in C/C++?
: such as round(5.5) = 6; round(6.4) =6...
: thanks,

avatar
z*h
5
profile

【在 b*********n 的大作中提到】
: 每次重装都要config server setting很麻烦
avatar
d*a
6
ROUND(3) Linux Programmer's Manual ROUND(
3)
NAME
round, roundf, roundl - round to nearest integer, away from zero
SYNOPSIS
#include
double round(double x);
float roundf(float x);
long double roundl(long double x);
DESCRIPTION
These functions round x to the nearest integer, but round halfway
cases
away from zero (regardless of the current rounding direction),
instead
of to the nearest even intege
avatar
t*t
7
你不能用floor(r+0.5)么?

【在 P********e 的大作中提到】
: inline int round(double r)
: {
: if (r > 0)
: return (int)(r+0.5);
: else return (int)(r-0.5);
: }

avatar
P*e
8
也可以,你这个调用cmath了,速度肯定慢,如果是大量数学操作,差别挺大的

【在 t****t 的大作中提到】
: 你不能用floor(r+0.5)么?
avatar
t*t
9
你还真以为编译器现在落后到这种程度么.

【在 P********e 的大作中提到】
: 也可以,你这个调用cmath了,速度肯定慢,如果是大量数学操作,差别挺大的
avatar
P*e
10
个人感觉吧,也可能是错的
不过我反正基本能不用cmath就不用

【在 t****t 的大作中提到】
: 你还真以为编译器现在落后到这种程度么.
avatar
z*i
11
This code might be very slow.
It will be translated to something like the following assemly code.
fldcw [ebp-4] ;Write new value to FCW
fistp DWORD PTR [ebp-16] ;Convert fvalue to integer
;and pop stack
fldcw [ebp-12] ;Restore FCW to its
;original state
It is a serial code in CPU because it changes FPU's control word.
A better solution is using SSE, 4 float one time

【在 P********e 的大作中提到】
: inline int round(double r)
: {
: if (r > 0)
: return (int)(r+0.5);
: else return (int)(r-0.5);
: }

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。