全球FlexSim系统仿真中文论坛
标题: Flexsim常用数学函数简介 [打印本页]
作者: zorsite 时间: 2017-5-31 02:14
标题: Flexsim常用数学函数简介
本帖最后由 zorsite 于 2017-5-31 03:15 编辑 - C) s) i$ q6 ^7 g @) F/ @
q% {8 ~5 M5 Fceil% j" S' d4 }; y/ p+ \' @* Q
(num num)
天花板,向上取整。
Example
double myval =ceil(2.3); // Sets myval to 3.
# U/ E' X1 c# Ddouble myval = ceil(3.8); // Sets myval to 4.
- }" l! P# H6 Kdouble myval = ceil(-2.3); // Sets myval to -2.
" o; F- ?9 p2 j* L5 Ydouble myval = ceil(-3.8); // Sets myval to -3. + B; f* @+ z; [: o$ ?
2 \* m6 P6 t0 j: b" W
floor
- t; K! k+ ~& `6 R(num num)
地板,向下取整。
Example
double myval = floor(2.3); // Sets myvalto 2. 6 ~) F1 K6 T# a! ]6 F
double myval = floor(3.8); // Sets myval to 3. 1 e! q ]1 Y3 V% n1 p |# X
double myval = floor(-2.3); // Sets myval to -3. 2 X$ P+ T! L6 q: E6 Z$ z
double myval = floor(-3.8); // Sets myval to -4.
# S9 U) J+ S; K& X2 h2 v& w" q; N; v) n4 {% ^: p! N; Z, [, t# w
round
( x8 n& a) M+ j6 l2 I7 ?(num value[, num precision])
根据指定的小数位数进行四舍五入。
Example
int mynum1 = round(3.6269);
3 ]5 F4 S0 r& @int mynum2 = round(3.6269,2);
! m$ D2 B. H) f4 {7 ~) J1 J2 `, K( Y& k# x$ m3 b2 U
mynum1 will be 4, and mynum2 will be 3.63.
0 Y [6 {- Y0 p' ~% ^- z
& _8 t9 ]! m: ~5 U; @
trunc
- A/ [; Q# t# l H" q) n(num value)
去除小数部分取整。Truncation
Example
trunc(2.478), returns 29 _, [$ A2 `0 Z x' J* B
: E8 J4 ^$ y0 \4 }) W" b. D" V# Xtrunc(2.95), returns 2
; w4 q) y* o$ A2 N, ]
frac+ b5 L: \2 ?" _+ l1 y) C' ]
(num value)
取小数点之后的部分。
Example
frac(3.124) returns 0.124
. {3 ]- n4 q0 q; k% Afrac(-16.12) returns -0.122 u" U1 }3 x1 p% O
frac(12) returns 0.0 : ^/ \5 |, U$ U9 _+ u3 g( t
8 [8 a1 ?# m- _. f3 t& G
sign& M" |+ Q5 k7 k2 l
(num value)
决断正负零,正数返回1,负数返回-1,0返回0。
Example
sign(-1) ( D2 r1 {5 s( g9 U; C( R# N, q
) k1 j. O9 z' e. q
fabs
( s" n2 m% p9 n(num value)
绝对值。
Example
if(fabs(x1 - x2) > 5) 1 x9 @, Z0 t3 m/ k5 l$ {
5 X) v% S4 @4 P( y
factorial
: q7 p. D) f6 m$ c( ^+ V" @7 h: `(num value)
阶乘。
Example
factorial(5) " Y9 ]8 C% ^7 B/ Y I& u6 o
& m: K p+ v. L( lThis calculates the factorial of 5, which is 1*2*3*4*5 = 120 . v4 c2 X. b! t& U- r8 D# k. r4 M
7 d2 F9 V- O. I1 l7 g% c( e
fmod
* k8 \' @* b* ^* [(num value1, numvalue2)
取余。
Description
Remainder of value1/value2. fmod returnsthe floating-point remainder of value1 / value2. If the value of b is 0.0, fmodreturns a quiet NaN.) K! o6 V* b- L2 ~$ W+ }5 P7 r! W
This command is great for getting a repeating set ofnumbers because no matter what value1 is, so long as value2 is unchanged, fmodwill return a set of numbers that keeps repeating itself.
Example
fmod(10,3) This returns the remainder of 10/3, which is 1.0; ^! D: p( Y4 E, T, u4 i
6 ~) @% q- @( a
if(fmod(current.stats.output,10) == 0)
8 d4 i, J8 t9 Z' m e9 n: y3 q+ Z( L
If this condition was in the OnExit of an object in the model, it would be truewith every 10th flowitem that exits, starting with the 10th flowitem. 0 r+ c. [, D! `3 n' P+ N; K$ e
" U* ^8 I* v: L! @
pow( \! w3 m3 A: W4 |7 M
(num num1, numnum2)
乘方。
Example
double myval = pow(2,3); Sets myval to 8. ' F5 m: ~+ L: L, M- _
6 z* h, c/ m R" Y8 i! H
sqr
2 w& H) {% i$ v( J! [0 F% k(num value)
平方Square of value.
Example
sqr(2)
7 z X! o- W$ ~- }$ J4 z
6 J$ u8 f' I( T
sqrt
* D; ]! _. h7 n- J(num value)
平方根Square root of value
Example
sqrt(10) This expression will return 3.16
0 P6 v: P% S, m/ Y
& U v* O8 S6 Y) D! C, v$ K' ^
4 [& L7 k2 J \, i1 H! C( U比如,我们要计算托盘上有多少层货物。: G, o- \' [: O; g5 t
默认情况下,pallet上面每层可以放置4个box。也就是说,1,2,3,4个box都算1层,5,6,7,8个box都算是2层。6 W: v- n7 \1 ^
此时可以用ceil函数向上取整,ceil(content(pallet)/4)即可得到正确的层数。
[attach]3751[/attach]
3 @8 U D3 ^/ m) V! y5 d/ |& \
作者: 我很强壮 时间: 2017-6-1 08:41
这个真的很有用~谢谢加老师、
作者: lulu-luka 时间: 2017-6-2 12:01
Mark~谢谢加老师的分享
作者: 壮志凌云1988 时间: 2018-1-23 20:11
受教了
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) |
Powered by Discuz! X3.3 |