火箭宇宙四舍五入

时间:2017-10-04 04:56:46

标签: rounding

尝试检查点后面的数字字段是否包含0以外的任何内容。

所以50.10会有10个

50.00会有0等

依稀记得一个舍入函数,但可能是在R83或其他风格

2 个答案:

答案 0 :(得分:1)

根据您提供的信息,我会将其作为字符串处理。以数学方式进行此操作的问题在于它会丢失尾随的0,根据您的条件和预期输出,您似乎需要它。

如果您知道精度(可能因为通常将这些事物存储为应用了转换的整数显示小数点),您可以使用[X]表示法获取值的最后X个字符,或者如果你不这样做,你可以使用FIELD来获取“。”之后的所有内容,这可能更安全。如果你需要将它作为另一端的实际数字,只需将该值乘以1,这将使你保持10并使你的00为0。

TEST.VAL.1 = "50.10"
TEST.VAL.2 = "50.00"
TEST.VAL.3 = "50.1230"

CRT MOD(TEST.VAL.1,1) ;* returns 0.1
CRT MOD(TEST.VAL.2,1) ;* returns 0
CRT MOD(TEST.VAL.3,1) ;* returns 0.123

CRT TEST.VAL.1[2] ;* returns 10
CRT TEST.VAL.2[2] ;* returns 00
CRT TEST.VAL.3[2] ;* returns 30

CRT FIELD(TEST.VAL.1,".",2) ;* returns 10
CRT FIELD(TEST.VAL.2,".",2) ;* returns 00
CRT FIELD(TEST.VAL.3,".",2) ;* returns 1230
END

祝你好运!

答案 1 :(得分:0)

有很多方法可以做到这一点。一种方法是:

NUMBER = 50.10
RESULT = FIELD(NUMBER,'.',2) ;* returns 10