我想知道是否有任何方法可以根据自己的规则向上或向下取整,而不仅仅是基本的0.5向上或向下。 我要四舍五入的数字采用24小时制,即2250、1100、830(但采用数字格式),我想根据最后两个数字是大于还是小于30来四舍五入-这将舍入到下一个小时。 任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
与此类似吗?
# Function
hround <- function(x) {
if (any(x < 0 | x > 24000)) stop("Invalid format")
mins <- x %% 100
x <- x - mins + ifelse(mins >= 30, 100, 0)
ifelse(x == 2400, 0, x)
}
# test data:
test <- c(2250, 1100, 830, 725)
# Test run
hround(test)
# [1] 2300 1100 900 700
答案 1 :(得分:1)
您可以在四舍五入之前对数字进行补偿:
@Multipart
@Headers("Content-Type: multipart/mixed; boundary=MULTI_PART_BOUNDARY")
@POST("upload")
@Xml
fun upload(@Part("xml") application: RequestBody,
@Part filePart: MultipartBody.Part) : Single<ResponseBody>
val cv = MultipartBody.Part.createFormData(
"file",
"filename,
RequestBody.create(
MediaType.parse("application/msword"),
file))
val xml = RequestBody.create(
MediaType.parse("text/plain"),
"<?xml version="1.0...")
您可能要向其中添加round(c(2250, 1100, 830) + 20, -2)
# [1] 2300 1100 800
:
%% 2400
那应该是:
round(2350 + 20, -2)
# [1] 2400
round(2350 + 20, -2) %% 2400
# [1] 0
感谢@snoram的提示