gpt4 book ai didi

mysql - 年龄计算小数位错误

转载 作者:行者123 更新时间:2023-11-29 19:32:07 25 4
gpt4 key购买 nike

我们使用下面的语法来计算年龄,年份后跟 2 位小数。该公式有效,除非生日是一整年(10 年,0 个月;10.0)。问题是小数点位置向右移动整年,没有任何月份。一岁的 child 会显示为 10.0,9 岁的 child 会显示为 90.0。脚本中任何修复此故障的指导将不胜感激!

Year ( GetAsNumber ( DOE )) - Year ( DOB ) - If ( GetAsNumber ( DOE ) < Date ( Month ( DOB ) ; Day ( DOB ) ; Year ( GetAsNumber ( DOE ) ) ); 1 ; 0 ) & ( Mod ( Month ( GetAsNumber ( DOE ) ) - Month ( DOB ) + 12 - If ( Day ( GetAsNumber ( DOE ) ) < Day ( DOB ) ; 1 ; 0 ) ; 12 ) / 12)

最佳答案

您的方法的主要问题是,当您应该使用数字 + 运算符时,您却使用了文本运算符 &

因此,当 Mod() 函数返回零时(即,当间隔为整数年时),您将附加一个字符串值 "0"到结果。

我还建议您将计算简化为:

Let ( 
elapsedMonths = 12 * ( Year ( DOE ) - Year ( DOB ) ) + Month ( DOE ) - Month ( DOB ) - ( Day ( DOE ) < Day ( DOB ) )
;
Div ( elapsedMonths ; 12 ) + Mod ( elapsedMonths ; 12 ) / 12
)

这个计算的结果是一个数字。要显示带有两位小数的数字,请将字段格式设置为“小数”并选择“固定小数位数”选项。

<小时/>

P.S. 请注意,Year()Month()Day() 函数需要 < em>日期作为参数。当你这样做时:

Year ( GetAsNumber ( DOB ))

FileMaker 将执行它:

Year ( GetAsDate ( GetAsNumber ( DOB )))

由于 DOB (大概)是一个开始日期,因此您只是在复合不必要的类型转换,而您应该简单地使用:

Year ( DOB )

关于mysql - 年龄计算小数位错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com