No.4ベストアンサー
- 回答日時:
1000倍して整数部分での切り捨てを行うのがわかりやすい実装では。
$value = "19.9996";
$value_int = int( $value * 1000 ); # 100倍して整数に。負の値を扱う時はint関数は不適当かもしれません。注意。
$output1 = substr( $value_int, 0, -3 ); # 整数部
$output2 = substr( $value_int, -3 ); # 小数部
print "$output1.$output2";
厳密な精度を要求する丸め動作は Perl が使用するシステム丸めを信用せず、代わりに自分自身で丸め関数を実装するべきです、とマニュアルにも書かれています。
No.5
- 回答日時:
皆さんのすばらしい回答もありますが、参考までにこんなやり方もあるんだ程度に思って貰えれば幸いです。
print &round(19.9996,3);
sub round{
my($rit);
if($_[0]=~/\./){
my($n,@a,@b);
@a=split(/\./,$_[0]);
@b=split(//,pop(@a));
push(@a,".");
for($n=0;$n<$_[1];$n++){
push(@a,$b[$n]);
}
$rit=join("",@a);
}else{$rit=$_[0];}
return $rit;
}
自作関数roundは(数字,少数点以下の桁数)を渡すと、自動的に余分な部分を切り落として、返すものです。
基本的な考え方は、整数値と小数点値に切り分けて、(配列に消えた.を入れて)小数点値を前から指定数分だけ取り出し、配列に入れて最後にドッキングさせています。
自分の求める関数がないなら無理矢理関数を作ってしまうのも手です。
本当に処理も多く、全くオススメできないソースですが、こういうやり方もあります。
No.2
- 回答日時:
#1です
$a=sprintf("%.4d",$i);
は
$a=sprintf("%.4f",$i);
です。
bazaxさん、このやり方は嫌いなんですよね?
No.1
- 回答日時:
$i=19.9996;
@a={"0","0",".","0","0","0","0"};
$a=sprintf("%.4d",$i);
$a=substr($a,0,5);
print("$a\n");
なら出来るのですが、
エスケープシーケンスで切捨ては出来たかな・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 教育学 エクセルで小数点以下を四捨五入について教えてください。 2 2023/04/05 17:33
- 統計学 155.2、164.4といった数字で平均値を出す場合は、その数字を四捨五入で整数にしてから÷個数で求 13 2022/10/12 16:12
- 小学校 がい数の問題の文章の意味 4 2022/11/21 14:25
- 化学 課題を理解したいので教えてください なるはやでお願いします( . .)" 100 mL の溶液中に 1 2023/05/08 23:12
- 統計学 教えてください! あるくじ引きには5枚に1枚の割合でアタリが入っていると宣伝しているが、実際には20 7 2023/05/29 09:10
- 工学 (1)抵抗値が30(Ω)のニクロム線がある。これにある電圧を加えて消費電力を測定したところ300(W 1 2022/11/07 14:35
- 工学 (1)抵抗値が30(Ω)のニクロム線がある。これにある電圧を加えて消費電力を測定したところ300(W 1 2022/11/07 14:12
- 数学 数学『データの分析』 √22を少数にする際 「4.6904…」だったので 4を四捨五入し0を切り捨て 5 2023/03/03 12:59
- 数学 x、yを整数とする。x、3x+2yを少数第一で四捨五入すると、それぞれ6、21になるという。 ⑴xの 4 2023/04/30 16:50
- その他(芸能人・有名人) 芸能人のWikipediaには身長が記載されていますよね 例えば159.6なら四捨五入したら160で 4 2023/01/28 10:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
Windows10においての『Perl』の...
-
アルファベットに付いて質問し...
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
VBA変数をFunction.VLookupの戻...
-
Unity5について質問です。 私は...
-
perlのflock関数でロックをかけ...
-
ラズベリーパイ初心者です。 ラ...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
perlでリテラル値はメモリにど...
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlのプログラミング 部分入れ...
-
Blenderについて
-
Perlで特定文字列から特定文字...
-
TeraPadエディターの操作方法に...
-
Perl 数値にスラッシュを入れる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlでファイルの拡張子を除い...
-
python質問
-
DBIを使ってのデータの取り出し...
-
grep関数を用いた複数行からの抽出
-
データベースから取得したデー...
-
配列内定義サブルーチン呼び出し
-
C言語の関数ポインタのイメージ...
-
桁数指定と四捨五入
-
アルファベットn文字の組み合わ...
-
index関数で複数個抜き出す
-
Perl 戻り値の型の判定って出来...
-
二桁の数字からなる配列数10...
-
サブルーチンと繰り返し処理を...
-
ソート時同じ値がある場合、表...
-
ファイルの最後の行から表示さ...
-
半角文字の縦書き表示
-
配列やハッシュで中身が同じか...
-
乱数と順列と組み合わせ
-
ハッシュ内の各値部分に配列を...
-
正規表現に関する質問
おすすめ情報