0

以下のコードでは、値$endorsepointsが整数でない場合があります。通常の数学の規則に応じて、四捨五入したり、上または下に丸めたりしたいです。

次に、丸めた数値を 2 つの MySQL テーブル、commentsubmitに入力します。

通常の数学の規則に従って、数値を切り上げまたは切り捨てます。

数値が切り捨てられることになっている場合 (つまり 5203.25)、正しい切り捨てられた数値 (つまり 5203.00) がコメントと送信の両方に追加ます。

数値が切り上げられることになっている場合 (つまり 5151.74)、正しい切り上げられた数値 (つまり 5152.00) が submit に追加されます。ただし、この場合、切り捨てられた数値 (つまり 5151.00) がコメントに追加されます。この状況で切り上げられた数値をコメントにするにはどうすればよいですか?

   $endorsepoints = $endorsepoints * .01;

    $endorsepoints2 = ( $endorsepoints <= 10 ) ? 10 : $endorsepoints;

    $endorsepoints2 = round($endorsepoints2);





    $query1 = sprintf("INSERT INTO comment VALUES (NULL, %d, %d, '%s', %d, NULL)", $uid, $submissionid, $comment, $endorsepoints2);

    mysql_query($query1) or die(mysql_error());


    $query2 = sprintf("UPDATE submission SET points = (points + '$endorsepoints2') WHERE submissionid = '$submissionid'");

    mysql_query($query2) or die(mysql_error());

編集:常に両方のテーブルに同じ番号を挿入したい。私の質問は: なぜそうではないのですか?

4

3 に答える 3

0
$endorsepoints3 = $endorsepoints2;
$endorsepoints2 = round($endorsepoints2);

if($endorsepoints3 > $endorsepoints2) {
    //rounded down
} else {
    //rounded uo
}

とにかく、あなたがこれを求めていたかどうかはわかりません。

于 2013-01-23T00:32:37.617 に答える
0

まず最初に、round() 関数は常に正しく丸めます。つまり、2.4 は 2 になり、2.6 は 3 になります。おそらく、最小または最大に丸める floor() と ceil() と number_format() をお探しですか?それについて"?

その後は、if/else を使用して、一致する結果に基づいてクエリを実行するのと同じくらい簡単です <==>

于 2013-01-23T00:33:03.440 に答える
-1

ceil()の代わりに使用round()

切り上げのみ

于 2013-01-23T00:57:34.980 に答える