尝试检查点后面的数字字段是否包含0以外的任何内容。
所以50.10会有10个
50.00会有0等
依稀记得一个舍入函数,但可能是在R83或其他风格
答案 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