Movilizer:如何在使用 getAnswerValue() return 值计算后获得整数结果?
Movilizer: How to get integer result after calculation with getAnswerValue() return values?
我正在使用文本项屏幕 (type="5"
),其中包括整数数字输入 (attributeType="2"
) 的答案。现在,当我使用用户输入值执行计算时,return 值始终是浮点数。
简化示例:
<question key="#1" type="5" title="My Screen">
<answer key="#1_1" attributeType="2" nextQuestionKey="#2">
<text>Num1</text>
</answer>
<answer key="#1_2" attributeType="2" nextQuestionKey="#2">
<text>Num2</text>
</answer>
<text>Enter 2 numeric values</text>
<onLeaveOkPersistAssignment>
val1 = getAnswerValue($answer:'#1_1'); <!-- for example '1' -->
val2 = getAnswerValue($answer:'#1_2'); <!-- for example '2' -->
$local:result = val1 + val2;
</onLeaveOkPersistAssignment>
</question>
<question key="#2" type="0" title="My Screen">
<answer key="#2_1" nextQuestionKey="END">
<text>%PLC%</text>
</answer>
<text>The result is:</text>
<onEnterAssignment>
setPlaceholder('%PLC%', $local:result); <!-- the screen should display '3' not '3.0' -->
</onEnterAssignment>
</question>
是否有可能 return 一个整数或至少将该值转换为一个整数?
你可以使用的是将给定格式转换为 int 的方法
myInt = parseInt(answerVal, 10)
在你的情况下它看起来像这样:
<onLeaveOkPersistAssignment>
val1 = getAnswerValue($answer:'#1_1'); <!-- for example '1' -->
val2 = getAnswerValue($answer:'#1_2'); <!-- for example '2' -->
val1 = parseInt(val1, 10);
val2 = parseInt(val2, 10);
$local:result = val1 + val2;
</onLeaveOkPersistAssignment>
我能想到的最简单的方法如下:
$local:result = (val1 + val2) \ 1;
简单的整数除以 1 去掉了小数点的其余部分并适用于数字,而不仅仅是像 parseInt 那样适用于字符串。
我正在使用文本项屏幕 (type="5"
),其中包括整数数字输入 (attributeType="2"
) 的答案。现在,当我使用用户输入值执行计算时,return 值始终是浮点数。
简化示例:
<question key="#1" type="5" title="My Screen">
<answer key="#1_1" attributeType="2" nextQuestionKey="#2">
<text>Num1</text>
</answer>
<answer key="#1_2" attributeType="2" nextQuestionKey="#2">
<text>Num2</text>
</answer>
<text>Enter 2 numeric values</text>
<onLeaveOkPersistAssignment>
val1 = getAnswerValue($answer:'#1_1'); <!-- for example '1' -->
val2 = getAnswerValue($answer:'#1_2'); <!-- for example '2' -->
$local:result = val1 + val2;
</onLeaveOkPersistAssignment>
</question>
<question key="#2" type="0" title="My Screen">
<answer key="#2_1" nextQuestionKey="END">
<text>%PLC%</text>
</answer>
<text>The result is:</text>
<onEnterAssignment>
setPlaceholder('%PLC%', $local:result); <!-- the screen should display '3' not '3.0' -->
</onEnterAssignment>
</question>
是否有可能 return 一个整数或至少将该值转换为一个整数?
你可以使用的是将给定格式转换为 int 的方法
myInt = parseInt(answerVal, 10)
在你的情况下它看起来像这样:
<onLeaveOkPersistAssignment>
val1 = getAnswerValue($answer:'#1_1'); <!-- for example '1' -->
val2 = getAnswerValue($answer:'#1_2'); <!-- for example '2' -->
val1 = parseInt(val1, 10);
val2 = parseInt(val2, 10);
$local:result = val1 + val2;
</onLeaveOkPersistAssignment>
我能想到的最简单的方法如下:
$local:result = (val1 + val2) \ 1;
简单的整数除以 1 去掉了小数点的其余部分并适用于数字,而不仅仅是像 parseInt 那样适用于字符串。