0

type="5"整数数値入力の回答 ( ) を含むテキスト アイテム画面 ( ) を使用していますattributeType="2"。ここで、ユーザー入力値を使用して計算を実行すると、戻り値は常に浮動小数点数になります。

短縮例:

<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>

整数を返すか、少なくとも値を整数に変換する可能性はありますか?

4

2 に答える 2

0

what you can use is the method to convert the given format into int

myInt = parseInt(answerVal, 10)

in your case it will look like that:

<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>
于 2015-04-09T13:38:52.373 に答える
0

私が考えることができる最も簡単なアプローチは次のとおりです。

$local:result = (val1 + val2) \ 1;

1 による単純な整数除算は、小数の残りを取り除き、parseInt のように文字列だけでなく、数値に対しても機能します。

于 2015-04-09T14:21:47.227 に答える