2

ドルの数字を100倍してから文字列の長さを返すgAppsスプレッドシートの関数があります...

function checkWrite(amount) {
amount = amount * 100
amount = amount+'';
var aLength = amount.length;
return(aLength);

return は次の結果を返します: amount--length
4. ---- 3
4.01 -- 3
4.02 -- 18
4.03 -- 3
4.04 -- 3
4.05 -- 3
4.06 -- 18

... 等々。多くの正解が 3 つあり、いくつかのランダムな不正解が 18 あります。

何が起こっているのか、誰かが光を当てることができますか? 私はコーディングが得意ではありませんが、とにかく結果が一貫しているはずだと確信しています。

4

1 に答える 1

1

ほとんどの場合、期待どおりに数値が丸められません。あなたが考えているように、浮動小数点値は正確に表現されていません。生成された文字列表現も返す必要があることを確認するには、たとえば、最後の行を次のように変更します。return aLength+' '+amount;

とにかく、そのような機能の使用法は何ですか?あなたがそれを何に使用するかについて何か考えがあれば、私はいくつかの代替ソリューションを提案することができます.

于 2012-06-09T04:09:56.480 に答える