- お前ら、wsh使ってますか? Part8
55 :名無し~3.EXE[sage]:2011/02/15(火) 02:33:03 ID:5kt/fSLl - ちょっと教えてください。
時刻の文字列から、合計の秒数を計算して表示しようとしてるのだけれど、数字によって表示がおかしくなります。 何か大事なことを忘れてるんでしょうか? わけがわからないです。 oshl=new ActiveXObject('WScript.Shell'); var nsec=33.48 ; nsec=nsec + 60; oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /; oshl.popup(nsec +''+ " 60を足した結果に、文字を付け足すと数字がおかしくなる"); var nsec=33.48 ; nsec=nsec + 100; oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /; oshl.popup(nsec +''+ " 100を足した結果に、文字を付け足しても数字がおかしくならない");
|
- お前ら、wsh使ってますか? Part8
56 :55[sage]:2011/02/15(火) 02:49:44 ID:5kt/fSLl - わかりにくいかもしれないんで、書き直します。たとえば、関数の戻り値がおかしくなっちゃうのです。
test=function(n){ return( "合計 "+ (33.48 + n)+ "" + " 秒です"); }; oshl=new ActiveXObject('WScript.Shell'); n=60; oshl.popup( test(n));// この場合は、数字がおかしい。 n=100; oshl.popup( test(n));// この場合は、数字は問題ない。
|
- お前ら、wsh使ってますか? Part8
57 :55[sage]:2011/02/15(火) 03:13:19 ID:5kt/fSLl - ぐぐったら、これがjavascriptの仕様なんだとw そ、そんな馬鹿なと思ったけど。
少数を含む数値を1000倍にしといて整数にしてから計算して、1000で割ることにしました。まんどくせえw test=function(n){ return( "合計 "+ (33.48 + n)+ "" + " 秒です"); }; test2=function(n){ return( "合計 "+ (((33.48)*1000 + (n*1000))/1000)+ "" + " 秒です"); }; oshl=new ActiveXObject('WScript.Shell'); n=60; oshl.popup( test(n));// 数字がおかしい。 n=60; oshl.popup( test2(n));// 数字は問題ない。
|