我刚开始在学校学Python。我正在编写一个程序来做一个简单的计算,确定我妹妹的胰岛素剂量(她刚刚被诊断出患有1型糖尿病)。
方程如下:
(当前血糖-目标血糖)/她的校正因子
例如。她的目标是120,校正因子是80。当测量时,BG恰好是260,所以:
(260-120)/80 = 1.75 (意为胰岛素的1.75单位)
这里是我被困的地方-有一个糖尿病的安全问题,答案被四舍五入到最近的.5 (在上面的例子,这意味着1.5个单位)。但是,如果答案是>.85,则会对其进行舍入
例如。1.86将四舍五入至2.00
我尝试过几种方法,但我的语法要么错了,要么它似乎变成了一种非常困难(长时间)的方法。
有没有人知道是否有一个库/函数来简化这个操作,或者对如何有效地完成这个操作有一个想法?
发布于 2022-02-20 06:13:54
你可以用这个对数字进行四舍五入:
import math
def round_insulin(val):
i = math.floor(val)
decimal = val - i
if decimal >= 0.85:
return i + 1
elif decimal >= 0.46:
return i + 0.5
else:
return i发布于 2022-02-20 06:21:57
您可以使用以下函数来完成所需的任务。
# Function
def special_round(current, target, correction_f):
dosing = (current - target) / correction_f
print(f'Original dosing:\t{dosing}')
dosing_decimal = dosing % 1
dosing_int = dosing // 1
if (dosing_decimal > 0.85):
rounded_dosing = dosing_int + 1
elif (dosing_decimal>0.5):
rounded_dosing = dosing_int + 0.5
else:
rounded_dosing = dosing_int
print(f'Rounded dosing: \t{rounded_dosing}')
return rounded_dosing
# Implementation
rounded_dosing = special_round(current=260, target=120, correction_f=80)https://stackoverflow.com/questions/71191745
复制相似问题