[過去ログ] Perlについての質問箱 64箱目 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
120(1): 2019/11/06(水)17:59 ID:j94j+HrP(1) AAS
 言語仕様っていうと違和感あるね 
 意図してこうしてますって感じで 
 IEEE 754の仕様といえばそうなのかもしれんがあれは規格であって 
 仕様とはまたニュアンスが違う なんつーか実数扱うときはそんなもんという感覚 
121(1): 2019/11/06(水)18:58 ID:yvB3xxPc(3/5) AAS
 >>111 
 一応、取った対応策です(消費税計算なので精度は不要) 
 除算解は有効桁数以下が切り捨てになり表示などで見える値以下になると想定しました 
  
 $a = 550; 
 $b = 1.1; 
  
 $c = ; 
 $tax= int($a - $a / $b); # $tax = 50 
 $net = $a - $tax; # $net = 500 
端数を残したまま税込から除算解を引いてintして税とし、税込から税を引いて本体としました 
 とりあえず期待した結果は得られています 
  
 ありがとうございました。 
122: 2019/11/06(水)18:59 ID:yvB3xxPc(4/5) AAS
 $c = ; 
  
 この行余計でした 
123(1): 2019/11/06(水)19:44 ID:mEOqpT9o(1/2) AAS
 >>120 
 C/C++なら規格が精密なのでそういう違和感もわかるが、Perlの場合は逆におかしいやろ。w 
124(2): 2019/11/06(水)19:52 ID:mEOqpT9o(2/2) AAS
 >>121 
 税率によってはきっとアカン場合がありそう。。。 
 単純な切り捨てはヤバいような。 
 まあ、そこまでの精度はイランのやろけども。 
  
 ちなみに、今回のケースなら、$x/1.1とするのではなく、$x*100/110としたほうが安定しそう? 
125(1): 2019/11/06(水)20:39 ID:yvB3xxPc(5/5) AAS
 >>124 
 うちは税込ものを分離する時は消費税側で小数点以下切り捨てなのでOKなのです 
 四捨五入とか会計方針によっては稀に問題が出るかもしれませんね 
126(1): 2019/11/06(水)21:15 ID:i85ttsqs(3/4) AAS
 1.1を掛けるなら11を掛けてから10で割った方が良いかもな。そうすると正数計算でやれる。 
 切り上げや四捨五入をしたい場合は10で割る前に一桁目を見て10を足したり足さなかったりすれば良い。 
127: 2019/11/06(水)21:18 ID:i85ttsqs(4/4) AAS
 ああ。逆か。税込みから本体と税を求めるのか。でも考え方は同じだな。 
128(2): 2019/11/07(木)00:06 ID:gr4VkOsJ(1/2) AAS
 >>125 
 違うぞ。今回の問題点をちゃんとわかってるか? 
 1.1と書いたリテラルが、実際の値は1.10...となっていて、1.1よりも大きかったことだぞ。 
  
 誤差の具合によっては、正確には切り捨てが不要な値でも、除数が大きいせいで計算結果が実際よりも小さい値になってしまって、してはいけない切り捨てが発生してしまう可能性はないんかね。 
129: 2019/11/07(木)00:07 ID:gr4VkOsJ(2/2) AAS
 >>126 
 >>124 
130: 2019/11/07(木)01:08 ID:q6f07NqD(1/2) AAS
 >>128 
 消費税は小数点を使わず整数計算で 
 10 /110 
 8 / 108 
 で計算するようにします 
  
 アドバイスありがとうございます 
131: 2019/11/07(木)01:12 ID:q6f07NqD(2/2) AAS
 >>128 
 うちの会社ではあんなに国家予算並みにたくさん「0」が出てくる消費税計算は無いのでとりあえずの回避でも大丈夫です 
 とはいえ先ほどのように整数計算に修正しようと思います 
132: 2019/11/09(土)10:00 ID:q+fGPpet(1) AAS
 どちらにせよ、小数点以下をどう扱うかは仕様で決めないとダメだな。 
133: 2019/11/14(木)22:54 ID:cMIrVE8k(1) AAS
 ファイルハンドル($fh)からファイル名を取得する方法ってありますか? 
 ・stat $fhでinode取得してシェルのfindで見つけるってのはコストかかるのでやりたくない。 
 *{$fh}{IO}辿ってIO::Fileから得られないかなって調べたんですけど分かりませんでした。 
 基本的にそういう思想がないってことかも知れません。 
134: 2019/11/15(金)00:28 ID:WAwhq9DE(1) AAS
 ムリやろ。 
 ファイル名のないファイルハンドルも少なくないしな。 
135: 2019/11/15(金)12:49 ID:qkK0C17l(1) AAS
 ファイルハンドルからファイル名を求めるシステムコールとかもないしな。 
 ハードリンクされてて1つのi-nodeで複数のファイル名を持ってたらどうすんのっていう問題もある。 
  
 自分の作ったプログラムの中だけでいいならそのプログラム内だけの独自のopen,close作ってそこでファイル名を保持しとけば良いんじゃないかな。 
136: 2019/11/15(金)22:37 ID:9LSwivmi(1) AAS
 お二方ありがとう 
 そもそもそういう使い方をするものではないって理解しました 
137(1): 2019/11/17(日)00:22 ID:+/PgA3gU(1) AAS
 そもそもファイルをopenした時点で、ファイル名は自明だろ、、、 
 <>の場合は、今開いているファイル名は、$ARGVでアクセス出来るし、、、 
 while(<>){ print $ARGV if $. == 1 ; $. = 0 if eof } 
  
 他は、自分でコード書くんだからファイルリストの管理すりゃいいだけの 
 話だし。 
138: 2019/11/17(日)00:47 ID:7P3Fm4Oa(1) AAS
 >>137 
 ファイルハンドルだけもらうクラスかもよ 
139: 2019/11/17(日)01:44 ID:cO7DNsZu(1) AAS
 いや、気持ちはわかるやろ。 
 ファイルハンドルは、しょせんハンドルでしかないと納得するのは、事情がある程度わかってからなんだから。 
140(1): 2019/11/17(日)07:47 ID:bNRHw2eJ(1) AAS
 ファイルハンドルをインクリメントすると次のファイルを指すハンドルになることはあまり知られていない。 
141: 2019/11/17(日)12:07 ID:Ew4nGi4g(1) AAS
 >>140 
 それは、Perlのファイルハンドルの話か? 
 Cのファイルポインタではなく? 
142(1): 2019/11/18(月)08:50 ID:4tmHvePg(1) AAS
 ActivePerl 5.22 から 5.28 にアップデートしたのだが、 
 次のものがなくなってしまって、とても不便になった気がする。 
 ・PerlEz.dll  
 ・ppm(perlパッケージマネージャー) 
 ・htmlドキュメント 
  
 他の2点はいいとしても、PerlEz.dllが無いと生きていけないので、 
 5.22 に戻した。もう一生5.22 を使い続けることになるのかな。 
 なぜ、こんな事をするのだろうか? 
143: 2019/11/18(月)20:45 ID:2uYwgX87(1) AAS
 Strawberry Perl 使えよ 
144: 2019/11/22(金)22:32 ID:G0qxcoi/(1) AAS
 そういやみんな最新の安定版使ってんの? 
 うちは5.20で止めてる。特に意味はないんだけどこれが安定してるってどこかで見たから。 
145: 2019/11/22(金)23:56 ID:0hNsLKVA(1) AAS
 5.16.3だな 
 多分意味は無い 
146: 2019/11/23(土)00:04 ID:pA1s2lMR(1) AAS
 俺もCentOSのデフォルトだわ 
 5.16.x 
 もう枯れてるしね 
147: 2019/11/23(土)00:20 ID:FBMqwUlj(1) AAS
 ずっと5.8.9のままだわ 
 とにかく安定している 
148(1): 2019/11/23(土)01:08 ID:uP8OeUg3(1) AAS
 perlのワンライナーについて質問です。 
  
 cat /home/xxx/aaa.txt | perl -spe 's/AA/$var/; END{print "complated.\n"}' -- -var="BB" > bbb.txt 
  
 上記のようにすると、END部分の終了メッセージもbbb.txtに保存されてしまいます。 
 そこで下記のようにしてみたのですが、入力ファイルの指定と"--"以降の引数がうまく与えられずエラーになります。 
  
 perl -i -spe 's/AA/$var/; END{print "complated.\n"}' /home/xxx/aaa.txt -- -var="BB" 
  
 どのようにすれば入力ファイルの指定と変数渡しを一緒にできますか? 
149: 2019/11/23(土)01:52 ID:0LKgjFg3(1) AAS
 5.30.0 
 なるべく最新の安定版を追っかけてる 
上下前次1-新書関写板覧索設栞歴
あと 853 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.022s