アカウント名:
パスワード:
$ cat one-eq-two.c
#include <stdio.h>#include <stdlib.h> void example1(void);void example2(void);void example3(void);void example4(void); int main(void) { example1(); example2(); example3(); example4(); return EXIT_SUCCESS; } void example1(void) { int one = 1; int two = 2; printf("Example 1\n"); if(one = two) { printf("1 = 2\n"); } else { printf("1 != 2\n"); } printf("\n"); } void example2(void) { int one = 1; int two = 2; printf("Example 2\n"); if(one = two) { printf("1 = 2\n"); } if(one != two) { printf("1 != 2\n"); } printf("\n"); } void example3(void) { int one = 1; int two = 2; printf("Example 3\n"); if(one != two) { printf("1 != 2\n"); } else { printf("1 = 2\n"); } printf("\n"); } void example4(void) { int one = 1; int two = 2; printf("Example 4\n"); if(one != two) { printf("1 != 2\n"); } if(one = two) { printf("1 = 2\n"); } printf("\n"); }
$ gcc one-eq-two.c $ ./a.out
Example 11 = 2 Example 21 = 2 Example 31 != 2 Example 41 != 21 = 2
$ help me
using System;namespace FloadTest{ class Program { static void Main(string[] args) { Console.Write("(0.1 + 0.7)*10 は {0}である\n",(0.1+0.7)*10); Console.Write("Math.Floor(8) は {0}である\n", Math.Floor(8.0)); Console.Write("したがって、Math.Floor((0.1 + 0.7)*10) は {0}で。。。あれ?\n", Math.Floor((0.1 + 0.7) * 10)); } }}
using System;
namespace FloadTest{ class Program { static void Main(string[] args) { Console.Write("(0.1 + 0.7)*10 は {0}である\n",(0.1+0.7)*10); Console.Write("Math.Floor(8) は {0}である\n", Math.Floor(8.0)); Console.Write("したがって、Math.Floor((0.1 + 0.7)*10) は {0}で。。。あれ?\n", Math.Floor((0.1 + 0.7) * 10)); } }}
# 元ネタ: http://jp2.php.net/manual/ja/language.types.float.php [php.net]# SQL Server で: http://10395.diarynote.jp/200909072116364066/ [diarynote.jp]
かのダイクストラもかつて悩んだらしいですよ。推移律が破れる [google.co.jp]
JavaScriptは少数の計算精度が低いので、いろいろ楽しそうです。
javascript:(function(){ var c = 0; for(var i = 0; i < 10; i++){ c += 0.1; } alert(c);})()
(Bookmarklet化してあるのでアドレスバーにコピペすれば動きます) 結果は0.9999999999999999です。
#「#define problem (bb || !bb)」というジョークプログラムを思い出しました
JavaScriptの浮動種数点数精度に関する、この種の間違えはよく見かけますが、
#include <stdio.h> main(){ double c = 0.0; int i; for (i = 0; i < 10; i++) c += 0.1; printf("%f = %.18f\n", c, c);}<ecode>1.000000 = 0.999999999999999889
実は、既定の表示桁数の違いだけの問題だったりします。
$ help meこんぴゅーた様: 市民、あなたは幸福ですか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
= のパラドックス (スコア:4, おもしろおかしい)
$ cat one-eq-two.c
$ gcc one-eq-two.c
$ ./a.out
$ help me
Float のパラドックス (スコア:1)
# 元ネタ: http://jp2.php.net/manual/ja/language.types.float.php [php.net]
# SQL Server で: http://10395.diarynote.jp/200909072116364066/ [diarynote.jp]
マクロの基本は検索置換(by y.mikome)
doubleのぱらどっくす (スコア:2)
かのダイクストラもかつて悩んだらしいですよ。推移律が破れる [google.co.jp]
Re:= のパラドックス (スコア:1)
JavaScriptは少数の計算精度が低いので、いろいろ楽しそうです。
(Bookmarklet化してあるのでアドレスバーにコピペすれば動きます)
結果は0.9999999999999999です。
#「#define problem (bb || !bb)」というジョークプログラムを思い出しました
Re:= のパラドックス (スコア:2)
JavaScriptの浮動種数点数精度に関する、この種の間違えはよく見かけますが、
実は、既定の表示桁数の違いだけの問題だったりします。
Re: (スコア:0)
Re: (スコア:0)
$ help me
こんぴゅーた様: 市民、あなたは幸福ですか?
Re: (スコア:0)
このコマンドはヘルプ ユーティリティでサポートされません。"me /?" を試してください。