X



s = "" + i;でintをStringに変換するのはなぜだめか
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2010/08/02(月) 23:30:13
0162デフォルトの名無しさん
垢版 |
2010/08/29(日) 14:08:40
>>159
いや、実数で表示する仕様。
計算もfloatでやってたから内部では誤差がでてた。
表示のときに適当にまるめてごまかしてたよ。
0164デフォルトの名無しさん
垢版 |
2010/08/29(日) 14:23:00
>>163
やっぱ、浮動小数点で計算して誤差が累積していくのはまずいんだよね。

やりかたがまずいのは下っ端だから、どうにもできない。
0165デフォルトの名無しさん
垢版 |
2010/08/29(日) 14:31:10
Rational型って浮動小数点が使えない環境だと使ったりする?
具体的にはマイコンとかで
0166デフォルトの名無しさん
垢版 |
2010/08/29(日) 14:39:17
PCですらほとんど使われないのに、もっと資源が乏しいマイコンで使う理由があるとは思えない。

っていうか、マイコンでもCコンパイラは普通に実数サポートしてるよ。
何らかの理由で実数のライブラリを使えないかアセンブラ使う場合は、
俺様仕様の浮動小数か固定小数を使う場合が多い。
0167デフォルトの名無しさん
垢版 |
2010/08/29(日) 14:39:52
なんか、会社ってところはどこもそうなのかも知れないけどさ
良い人から辞めちゃうよね
んでもって、腹黒い人とか、他人を動とも思わない人とか、
図々しい人とか、・・・そんなのばかりがテコでも動かないぜって
感じで居座り続ける・・・
会社って、こうやってダメになっていくんだと思う
それはそのまんま居座り族・牛耳り族が社会をダメにしていくって
ことなんだ。。。
0168デフォルトの名無しさん
垢版 |
2010/08/29(日) 18:43:51
>>157
誤差ねー
NTSCの60fpsとかだよな
正確には60でなく60000/1001fpsなので、適当に扱うと、モロに誤差が集積する

「整数比を普通に扱いたい/計算したい」みたいな用途は
別にそう珍しくもないんじゃ?
例えば画面の縦横だって整数比だし

実数とは言うけれど、計算機上だと離散的な(整数)データ扱う機会のがむしろ
多いような
0169デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:07:36
>>168
フレーム数と比を掛けるだけだから、誤差の累積なんかないと思うけど....

ついでに野暮なことを言えば、フレームの時刻をそこまで厳密に求める意味は、
少なくとも2つの意味で通常はないよね。

一つは、恐らくビデオ回路の発振器の発振精度なんて恐らくそんな高くないから意味がない。

もう一つは、フレームの間隔を1/60secで計算して生成した画像と、
1001/60,000secで計算して生成した画像の差なんて、人間にはわからないw
0170デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:14:37
x = 1 / 3;
y = x * 3;

この時の y の値は有理数型と整数型、どっちであることがおまいらの好み?
0172デフォルトの名無しさん
垢版 |
2010/08/29(日) 20:39:31
正確な計算をしたいという用途はいろいろあるけれども、多くの用途で大きな数での累乗の計算がでてくるので、実際につかうとすぐ破たんする。
0174デフォルトの名無しさん
垢版 |
2010/08/30(月) 22:07:19
有理数型とか全然実用的でないものはいらんわ。
それよりゼロ割り許可の数値型とか欲しい。
3/0, 2/0, 1/0, 0/0, -1/0 ・・・でもちろんゼロ割り状態でソートとか出来るようなの。
0176デフォルトの名無しさん
垢版 |
2010/08/30(月) 22:13:35
>>175
おおなるほど。そのへんまで考えての分数型だったらすごいな。
でも単なる分数型だと 1/ (0^2) とか表現できる? 無限大の大小をソートしたいわけだし。
0179デフォルトの名無しさん
垢版 |
2010/08/30(月) 22:32:11
>>177-178
そうそう、というか最近の仕事でSQLなんだけど、(A / B) でORDER BY みたいな要件があったときに悩んだ。
もちろんBはゼロの可能性があって・・・なので言語的にそういうのカバーしてるのがひとつくらいあってもいいじゃん、てことです。
0181デフォルトの名無しさん
垢版 |
2010/08/31(火) 10:32:31
数学的には1/0と3/0は∞で等しいでしょ。
それを分子によって順序付けしたいというのは、数学の定義ではなく、プログラマの独自の定義なんだから、
言語仕様でそれを定義しちゃったらおかしいよ。
0183デフォルトの名無しさん
垢版 |
2010/08/31(火) 12:18:46
いや、数学的にはどうとでも定義できるけど役に立たんから普通は定義しないだけだ
SQLでは0除算が役に立つのか?
0186デフォルトの名無しさん
垢版 |
2010/08/31(火) 13:43:22
どういう理屈で等しいとか違うとか言ってるのかは知らないが(超準解析?)
数学的には
lim(1/x) x→0 と lim(3/x) x→0 の比較なのか分からんと何も言えない、ってとこじゃないの?
0195デフォルトの名無しさん
垢版 |
2010/09/02(木) 00:20:22
まあ俺>>174の言いたかったのはそんな数学的意義とかじゃなくて
単にゼロ除算で落ちない型があってもいいじゃんくらいの話なんだ
0196デフォルトの名無しさん
垢版 |
2010/09/02(木) 00:22:21
ゼロ除算で落ちなかったらそれは何を意味する値になるのかわからんって話ではないのか
得体のしれない数同士を比較出来るようにしても……
0197デフォルトの名無しさん
垢版 |
2010/09/02(木) 00:32:35
いやだから、無限大にも大小はある(定義できる)し、あるいは内部的には分数型として式のまま(5/0とか)で保持でもいいし。
0201デフォルトの名無しさん
垢版 |
2010/09/02(木) 07:09:26
Rational型なら、3/0 と 1/0は、区別して持てる。
ただし、その大小は定義できない。
(通常、整数型の0には符号がない。)
0202デフォルトの名無しさん
垢版 |
2010/09/02(木) 09:02:57
無学な俺に Rational型 とやらを実装している言語を教えてくらさい。
ググってもなんか違う情報しかでなかったとです。

C++で演算子オーバロードを覚えたころに自力で分数クラスを作った覚えはある……
0204デフォルトの名無しさん
垢版 |
2010/09/02(木) 09:25:34
   In [1]: a, b, c = symbols('abc')

   In [2]: f = a*x**2 + b*x + c

   In [3]: f
   Out[3]:
                2
   c + b*x + a*x

   In [4]: solve(f, x)
   Out[4]:
            _____________ _____________
           / 2 / 2
    -b + \/ -4*a*c + b -b - \/ -4*a*c + b
   [---------------------, ---------------------]
             2*a 2*a
0216デフォルトの名無しさん
垢版 |
2010/09/04(土) 12:17:52
馬鹿多いな。
だから、"7"と7の間の比較法に曖昧さがなければ別に何も問題はない。
逆に聞くがどこか曖昧なところがあるのかよ。

多分若い奴が多いんだろうと想像するけど、80代のジジイみたいな硬直した
思考しかできない奴多いよな。
0217デフォルトの名無しさん
垢版 |
2010/09/04(土) 12:30:45
たしかに、"7"と7では曖昧さがないように見える。

だが文字と数値を比べるということは
それは文法的には"0"と0を比べることも可能ということになるんだよ。

"0"は文字という実体がある。だから真
0は何もないという意味。だから偽

違うものなのにイコールになる。
どう考えても曖昧だろ。
0219デフォルトの名無しさん
垢版 |
2010/09/04(土) 12:40:36
0は偽という点には反論しないのかw

お前は、どうでも良い揚げ足鳥にしか見えんのだが。
鳥なら鳥らしく飛んでみろよ。がけの上からな
0221デフォルトの名無しさん
垢版 |
2010/09/04(土) 12:53:02
揚げ足取りとか本気で言ってるなら大馬鹿だな。
とりあえず今の話題と「偽は0である」には何の関係もない。
言ってることが意味不明すぎる。

普通のプログラマなら、"7" == 7のような比較を許す言語では、
演算子==は2つのオペランドの型を揃えてから(要するに片方の値をもう片方の型に
暗黙的に変換してから)比較を行うんだろうと想像するだろう。

"7" == 7の場合は、恐らく"7"の方を整数に変換するルールを採用するんだろうね。
で、その方法にどこか曖昧さがあるのかよって。

まあ、あえて問題点も一つ指摘しとくけど、数値の文字列表現に桁区切りとか小数点が
入ってる場合は、そのルールが国や地域によって違うから問題がないわけじゃない。
0225デフォルトの名無しさん
垢版 |
2010/09/04(土) 13:07:43
どこが曖昧なのかサッパリ理解できん。

仮に"0"が「特定の文脈において」bool値として扱われる言語があるとして、
それは「いつでも」そうであるということを意味しなければならない必然性はどこにもないはずだが...

本当に80代のジジイの思考力だな>>224
0226デフォルトの名無しさん
垢版 |
2010/09/04(土) 13:08:48
言語によって違うのを統一してほしいわ。
一つの言語しかやらない似非技術者はそれでいいんだろうけど。

文法が違うだけならまだ許せるが
同じ書き方をして、答えが違うのは
混乱の元。
0228デフォルトの名無しさん
垢版 |
2010/09/04(土) 14:22:27
C/C++での"0"は0\0と並んだ文字型配列へのポインタ
まあおすすめはしないがintとの比較も可能だろ。
0236デフォルトの名無しさん
垢版 |
2010/09/06(月) 04:10:21
>>234
言語の数だけ覚えるべきだろ。
元々コンピュータにあるのは数値だけだ。
型なんてものは元々存在しないのだから、型ってのは言語の都合でしかない。
そして言語の都合でしかないのだから、言語によって意味が違うのは当然のこと。
それを何か1つの言語の都合で統一したら他の言語が割を食う。
0242デフォルトの名無しさん
垢版 |
2010/09/06(月) 09:50:28
>238が言ってるハードレベルの差ってのはレジスタとかのことだろ
整数レジスタと浮動小数レジスタは別に決まってるだろうが
そんなことも説明されなきゃわからんのか
0244デフォルトの名無しさん
垢版 |
2010/09/06(月) 19:58:54
Cなら変数の型とレジスタの種類が直結してるかもしれんが

高級な言語はもっと複雑な内部構造してるだろ。
JAVAなんか全部クラスだし。
0247239
垢版 |
2010/09/06(月) 23:36:47
>>240
うん、俺もそこだと思ったけど、カッコの位置間違えた。
0248デフォルトの名無しさん
垢版 |
2010/09/07(火) 17:40:25
Javaってさ
OO言語とか言われてるけど
結局のところ
Cからポインタ使えなくして
ガベコレ付けて
ぬるぽ例外出るようにしただけの
箱庭低級言語なんだよね
0249デフォルトの名無しさん
垢版 |
2010/09/07(火) 17:55:18
>>248
・デフォでvirtual関数
・インタフェースの構文がある
・実装の多重継承を禁じた

C++に比べりゃだいぶ積極的だろ。OOPLとして。
0257デフォルトの名無しさん
垢版 |
2010/09/08(水) 07:23:33
ぬるぽが出ることの何が悪いのかよくわからん
javaが例外投げすぎなところはあると思うがぬるぽは全然問題無いだろ
0260デフォルトの名無しさん
垢版 |
2010/09/08(水) 13:44:58
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>253
 (_フ彡        /

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>255
 (_フ彡        /

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>257
 (_フ彡        /


■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況