[前の記事]« [2003][XP]曜日を表示/条件分岐に使いたい
[次の記事][NT系]共有フォルダ配下のファイル/フォルダをすべて削除するには »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

[NT系]set /aコマンドによる計算で思うような計算結果が得られない

758.
set /aコマンドによる計算で思うような計算結果が得られません
2004年09月05日(日) 02時11分
ナツ
set /aコマンドによる計算ですが思うような計算結果が得られません。

たとえば下記の計算は0になってしまいます。

set /a abc=10000000000/10

なぜでしょうか?
教えてください。
Windows2000Proです。
761.
Re:set /aコマンドによる計算で思うような計算結果が得られません
2004年09月06日(月) 11時22分
YanaKen
ナツさん、こんにちは。

>たとえば下記の計算は0になってしまいます。

>set /a abc=10000000000/10

 試してみました。

E:\>set /a abc=100000 / 10
10000
E:\>set /a abc=1000000 / 10
100000
E:\>set /a abc=10000000 / 10
1000000
E:\>set /a abc=100000000 / 10
10000000
E:\>set /a abc=1000000000 / 10
100000000
E:\>set /a abc=10000000000 / 10
0

 なるほど、10000000000だともう扱えないようですね。
 コンピュータ上の計算プログラムを「無限に大きな数が扱える」ように作ることは(そこに多大なエネルギーを注ぎ込めば別として)困難です。SETコマンドの演算機能は(おまけ的機能ですから)そのへんの仕様は適当、ということでしょう。

 もう少し詳しくチェックしてみたところでは、扱える数値は、
 -2147483648 ~ 2147483647
 ……の範囲(32ビットであらわせる整数の範囲)であることがわかりました。
 その範囲を越えると、一律で「0」が返ったり、あるいは「桁あふれ」の結果として、あるべき結果とはかけはなれた数値が返ってきます。

例:
E:\>set /a abc=2147483647+1
-2147483648

 そういうものだとわきまえて使うしかないと思います。

YanaKen
775.
Re2:set /aコマンドによる計算で思うような計算結果が得られません
2004年09月09日(木) 02時30分
ナツ
YanaKenさん
ありがとう御座います。
調べても分からずにいたので助かりました。
 
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年09月05日 00:50に投稿されたエントリーのページです。

ひとつ前の投稿は「[2003][XP]曜日を表示/条件分岐に使いたい」です。

次の投稿は「[NT系]共有フォルダ配下のファイル/フォルダをすべて削除するには」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート