ナビ 公式 ヘルプ


 NADE BBS

 トップ 最新 新規書込 検索

2017-05-17 12:05:46 -水 曜-

184 : Re:Re:Re:Re:Re:Re:Re:Re:Re:除算の結果が・・・? - たいがあ さん


本件、こういう事のようですね。
http://nade.jp-pro.net/bbs/bbs3/cbbs.cgi?mode=al2&number=2259&no=0&KLOG=4


「切り下げ」などの小数を扱うシステム関数を上書きしてしまおうと思ったのですが、定義ファイルを

!"小数関数.nako"を取り込む
!"小数関数.nako"にネームスペース変更

じゃダメなんですね。
どなたかご教授ください!


検証ありがとうございます。

どなたか要望板に投稿願えませんか・・・仕事終わらなくて・・・



 うううん、一段とナゾが・・・
 インストーラーでインストールしたなでしこ(最新版が出るたび上書きしている)では、先に書いた通り、ちゃんと0と14000になったのですが、zipを解凍したやつをそのままダブルクリックして起動して実行したところ、同現象となりました(@_@)
(バージョン:1.563/1.562/1.561。うちは通常版です。)
 また、

言う(小数部分(16798.8)) #0.800000000000001

 については、どちらでも同様になりました。
 試しに、

1234567.8の小数部分を言う

 とかやったら、0.799999999999955になったり;
 むむむ~。

 でも、なんにしろプログラムに間違いがある問題ではないようなので・・・
 たとえば、バグ&要望掲示板に上げてみたら、そのうち直して頂けたり、なんか新たな展開があるかも・・・???
https://nadesi.com/cgi/bug/mbbs.php





(編集パスワード送信)

子記事

親記事 (No.173)
返信した記事(元) (No.183)

この内容(No.184)に返信

この内容(No.184)をダウンロード

この内容(No.184)のテキスト表示


2017-05-16 18:39:38 -火 曜-

183 : Re:Re:Re:Re:Re:Re:Re:Re:除算の結果が・・・? - たいがあ さん


「切り下げ」などの小数を扱うシステム関数を上書きしてしまおうと思ったのですが、定義ファイルを

!"小数関数.nako"を取り込む
!"小数関数.nako"にネームスペース変更

じゃダメなんですね。
どなたかご教授ください!


検証ありがとうございます。

どなたか要望板に投稿願えませんか・・・仕事終わらなくて・・・



 うううん、一段とナゾが・・・
 インストーラーでインストールしたなでしこ(最新版が出るたび上書きしている)では、先に書いた通り、ちゃんと0と14000になったのですが、zipを解凍したやつをそのままダブルクリックして起動して実行したところ、同現象となりました(@_@)
(バージョン:1.563/1.562/1.561。うちは通常版です。)
 また、

言う(小数部分(16798.8)) #0.800000000000001

 については、どちらでも同様になりました。
 試しに、

1234567.8の小数部分を言う

 とかやったら、0.799999999999955になったり;
 むむむ~。

 でも、なんにしろプログラムに間違いがある問題ではないようなので・・・
 たとえば、バグ&要望掲示板に上げてみたら、そのうち直して頂けたり、なんか新たな展開があるかも・・・???
https://nadesi.com/cgi/bug/mbbs.php




(編集パスワード送信)

子記事

親記事 (No.173)
返信した記事(元) (No.182)

この内容(No.183)に返信

この内容(No.183)をダウンロード

この内容(No.183)のテキスト表示


2017-05-16 16:23:08 -火 曜-

182 : Re:Re:Re:Re:Re:Re:Re:除算の結果が・・・? - たいがあ さん


検証ありがとうございます。

どなたか要望板に投稿願えませんか・・・仕事終わらなくて・・・



 うううん、一段とナゾが・・・
 インストーラーでインストールしたなでしこ(最新版が出るたび上書きしている)では、先に書いた通り、ちゃんと0と14000になったのですが、zipを解凍したやつをそのままダブルクリックして起動して実行したところ、同現象となりました(@_@)
(バージョン:1.563/1.562/1.561。うちは通常版です。)
 また、

言う(小数部分(16798.8)) #0.800000000000001

 については、どちらでも同様になりました。
 試しに、

1234567.8の小数部分を言う

 とかやったら、0.799999999999955になったり;
 むむむ~。

 でも、なんにしろプログラムに間違いがある問題ではないようなので・・・
 たとえば、バグ&要望掲示板に上げてみたら、そのうち直して頂けたり、なんか新たな展開があるかも・・・???
https://nadesi.com/cgi/bug/mbbs.php



(編集パスワード送信)

子記事

親記事 (No.173)
返信した記事(元) (No.181)

この内容(No.182)に返信

この内容(No.182)をダウンロード

この内容(No.182)のテキスト表示


2017-05-16 14:26:58 -火 曜-

181 : Re:Re:Re:Re:Re:Re:除算の結果が・・・? - 雪乃☆雫 さん


 うううん、一段とナゾが・・・
 インストーラーでインストールしたなでしこ(最新版が出るたび上書きしている)では、先に書いた通り、ちゃんと0と14000になったのですが、zipを解凍したやつをそのままダブルクリックして起動して実行したところ、同現象となりました(@_@)
(バージョン:1.563/1.562/1.561。うちは通常版です。)
 また、

言う(小数部分(16798.8)) #0.800000000000001

 については、どちらでも同様になりました。
 試しに、

1234567.8の小数部分を言う

 とかやったら、0.799999999999955になったり;
 むむむ~。

 でも、なんにしろプログラムに間違いがある問題ではないようなので・・・
 たとえば、バグ&要望掲示板に上げてみたら、そのうち直して頂けたり、なんか新たな展開があるかも・・・???
https://nadesi.com/cgi/bug/mbbs.php


(編集パスワード送信)

子記事

親記事 (No.173)
返信した記事(元) (No.180)

この内容(No.181)に返信

この内容(No.181)をダウンロード

この内容(No.181)のテキスト表示


2017-05-16 12:45:30 -火 曜-

180 : Re:Re:Re:Re:Re:除算の結果が・・・? - たいがあ さん



なんででしょう・・・



#---ここから--- 

言う(小数部分(16798.8)) #0.800000000000001

#---ここまで--- 



小数部分を確認したら「2回目」からおかしかったです・・・


#---ここから--- 

Memo1とはメモ 
そのレイアウトは全体 

除算テスト(16800,1.2) 

待機 

●除算テスト(a,b) 
  c = a
  d = 0
  f = 0
  e = "" 
  1でループ 
    d = d + 1
    f = c - b
    e = e & "{d}回目 ({c} - {b} = {f}) ({c}の小数部分は{小数部分(c)}) ({b}の小数部分は{小数部分(b)}) {改行}"
    c  =  f
    もしf<bならば 
      抜ける 
  Memo1のテキスト = e & "{a} / {b} = {d} 余り{c}" 
  戻る 

#---ここまで--- 


修正


#---ここから---

Memo1とはメモ
そのレイアウトは全体

除算テスト(16800,1.2)

待機

●除算テスト(a,b)
  c = a
  d = 0
  e = ""
  1でループ
    d = d + 1
    e = e & "{d}回目 ({c} - {b} = "
    c = c - b
    e = e & "{c}){改行}"
    もしc<bならば
      抜ける
  Memo1のテキスト = e & "{a} / {b} = {d} 余り{c}"
  戻る

#---ここまで---





検証ありがとうございます。

「ROUND」案もありがとうございます。

引き算で割り算関数を作ってみましたところ・・・何度実行しても「13167回目」でおかしくなります。

なぞは深まるばかりです・・・


#---ここから---

Memo1とはメモ
そのレイアウトは全体

除算テスト(16800,1.2)

待機

●除算テスト(a,b)
  c = a
  d = 0
  e = ""
  1でループ
    d = d + 1
    e = e & "{d}回目 ({c} - {b} = "
    c = c - b
    e = e & "{c}){改行}"
    もしc      抜ける
  Memo1のテキスト = e & "{a} / {b} = {d} 余り{c}"
  戻る

#---ここまで---


こちら(Win7 + nadesiko 1.563)でも結果は同じでした。ちょっと実験してみました。

#---ここから---

a = 16800 / 1.2
aを表示            #14000
小数部分(a)を表示  #0.999999...
切り捨て(a)を表示  #13999

b = aの整数部分
bを表示            #13999

c = ROUND(a)

cの小数部分を表示  #14000
切り捨て(c)を表示  #0

#---ここまで---

上記、コメントに書いた様な値になってます。なでしこは数値を書いた場合
実数扱いなので、計算結果が割り切れていても、実数で持っている感じです。
(ただ、最初の計算結果aは14000と表示されるのがなぞなんですが…)

aの整数部分だけを抜き出すと13999になっているので、実際に計算結果は
13999.99999999...となっていて、表示する場合にまるめて表示している
可能性があります。

これを避ける方法はROUND()関数を使うぐらいしか思い当たりません。一番
近い整数に丸められるので、ROUND(a)が14000になります。





(編集パスワード送信)

子記事

親記事 (No.173)
返信した記事(元) (No.179)

この内容(No.180)に返信

この内容(No.180)をダウンロード

この内容(No.180)のテキスト表示


最新に戻る < < < > > > 次へ



RSS


www.eznavi.net