Mr_Longly 发表于 2011-11-29 15:45

LINGO里怎么对负数向上取整?

本帖最后由 Mr_Longly 于 2011-11-29 15:56 编辑

我想实现的是
1.2——2
0——0
-0.1——0{:soso_e101:} 求高手啊~

madio 发表于 2011-11-29 15:56

这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合你的对于负数取整的要求,但是正数的要求不符合,你可以用@sign函数来判断数的正负,如果是正数再加一就可以了。

Mr_Longly 发表于 2011-11-29 16:15

madio 发表于 2011-11-29 15:56 static/image/common/back.gif
这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合 ...

MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));
LIMIT_N是个常数数列……好像我不能再对T进行等式限定了……

Mr_Longly 发表于 2011-11-29 16:24

Mr_Longly 发表于 2011-11-29 16:15 static/image/common/back.gif
MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));
LIMIT_N是个常数数列… ...

T(I)是我要求解的未知数组……,求助啊~……

Mr_Longly 发表于 2011-11-29 16:54

madio 发表于 2011-11-29 15:56 static/image/common/back.gif
这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合 ...

已经解决了,谢谢斑竹~~{:2_37:}你太有爱了!!

大鲵2003 发表于 2011-11-30 20:39

{:soso_e147:}{:soso_e145:}

发表于 1970-1-1 08:00

shuai1991 发表于 2011-12-4 15:45

MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));

ehi28 发表于 2011-12-12 12:51

嗯,不错,支持一下.

silalo 发表于 2011-12-14 22:51

@abs再判断
页: [1]
查看完整版本: LINGO里怎么对负数向上取整?