小数点書式の仕様変更?
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
mtaka
投稿数: 5
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
> 追記 V8 でも変数の書式を N12.0 にすると結果が 90.5 になりました。
そうですか?
変数3つ(A,B,C)の書式をN12.0にして、簡単なオンラインプログラム(C=A/Bみたいな)を作成してみるとV8では小数点1位で、四捨五入され、小数は必ず0で表示されているのを確認してから投稿したんですが・・・・(uniPaaSでは、小数点にごみ?が入る)
なんか環境により左右されるんですかね?(逆に光が見えた!)
書式を許している以上、バグだと思いますんでMSJに確認してみます。
そうですか?
変数3つ(A,B,C)の書式をN12.0にして、簡単なオンラインプログラム(C=A/Bみたいな)を作成してみるとV8では小数点1位で、四捨五入され、小数は必ず0で表示されているのを確認してから投稿したんですが・・・・(uniPaaSでは、小数点にごみ?が入る)
なんか環境により左右されるんですかね?(逆に光が見えた!)
書式を許している以上、バグだと思いますんでMSJに確認してみます。
投票数:0
平均点:0.00
mtaka
投稿数: 5
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
反応ありがとうございます。
私的にもなしですが、V8時代のSQLGateWayの問題だったかどうかあやふやですが、小数点を付けないと桁数が大きすぎますと言われ項目が定義できなかったので、無理やり小数点(.0)を付け内部形式をFloatにする事により回避していたんだと思います。
それでもV8では、どんな計算式を入れても小数点1位で、四捨五入して、小数には0が入っていたので、問題なかったです。
私的にもなしですが、V8時代のSQLGateWayの問題だったかどうかあやふやですが、小数点を付けないと桁数が大きすぎますと言われ項目が定義できなかったので、無理やり小数点(.0)を付け内部形式をFloatにする事により回避していたんだと思います。
それでもV8では、どんな計算式を入れても小数点1位で、四捨五入して、小数には0が入っていたので、問題なかったです。
投票数:0
平均点:0.00
null
投稿数: 191
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
> N12.0という書式は有りなのですか?
てっきり、N12 と N12.0 は同じ扱いだと思っていて、N12 で確認していたのですが、
N12.0 で確認すると結果が 90.5 になりました。
書式のところでズームして「数値型書式」で確認すると N12.1 と
同等の編集がされるように見えます。これはもしかすると不具合かもしれませんね。
書式で N12.0 と書いてあるところは N12 に変更した方が良いのかも。
追記 V8 でも変数の書式を N12.0 にすると結果が 90.5 になりました。
てっきり、N12 と N12.0 は同じ扱いだと思っていて、N12 で確認していたのですが、
N12.0 で確認すると結果が 90.5 になりました。
書式のところでズームして「数値型書式」で確認すると N12.1 と
同等の編集がされるように見えます。これはもしかすると不具合かもしれませんね。
書式で N12.0 と書いてあるところは N12 に変更した方が良いのかも。
追記 V8 でも変数の書式を N12.0 にすると結果が 90.5 になりました。
投票数:0
平均点:0.00
Jiro123
投稿数: 271
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
横槍ですみません。
N12.0という書式は有りなのですか?
構文チェックでエラーにはなりませんが。。。
ドットの右がゼロということは、小数桁はゼロということですよね。
どのような扱いになるのでしょうか。
N12.0という書式は有りなのですか?
構文チェックでエラーにはなりませんが。。。
ドットの右がゼロということは、小数桁はゼロということですよね。
どのような扱いになるのでしょうか。
投票数:0
平均点:0.00
null
投稿数: 191
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
インストール直後の Magic.ini を使用して確認してみましたが、
項目更新で N12 の変数に 1900 * 0.05 / (1 + 0.05) の結果を代入したところ、90 になりました。
もし、91 になるのであれば、設定の問題なのかもしれませんがそれらしい設定は見当たりません。
設定で直らないようであれば、計算結果を Fix() 関数で切り捨てするしか無いでしょう。
項目更新で N12 の変数に 1900 * 0.05 / (1 + 0.05) の結果を代入したところ、90 になりました。
もし、91 になるのであれば、設定の問題なのかもしれませんがそれらしい設定は見当たりません。
設定で直らないようであれば、計算結果を Fix() 関数で切り捨てするしか無いでしょう。
投票数:0
平均点:0.00
mtaka
投稿数: 5
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
V8のアプリで、金額の書式をN12.0で設定しているプログラムがあります。
これをuniPaaSに持ってくると動作が変わります。
V8 :小数点1桁目を四捨五入
(例)項目A = 1900 * 0.05 / ( 1 + 0.05 )
項目Aは、90.0
uniPaaS:小数点2桁目を四捨五入
(例)項目A = 1900 * 0.05 / ( 1 + 0.05 )
項目Aは、90.5
上記結果をDB(numeric12.0)に設定すると1円の誤差が出てしまいます。
答えを同じ値にする方法が、INI等の動作で変更する事が可能でしょうか?
これをuniPaaSに持ってくると動作が変わります。
V8 :小数点1桁目を四捨五入
(例)項目A = 1900 * 0.05 / ( 1 + 0.05 )
項目Aは、90.0
uniPaaS:小数点2桁目を四捨五入
(例)項目A = 1900 * 0.05 / ( 1 + 0.05 )
項目Aは、90.5
上記結果をDB(numeric12.0)に設定すると1円の誤差が出てしまいます。
答えを同じ値にする方法が、INI等の動作で変更する事が可能でしょうか?
投票数:0
平均点:0.00