ふ 流浪の日々

日々流されてます

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  72  : 記事  0  : コメント  1353  : トラックバック  34

ニュース




書庫

日記カテゴリ

「酒を飲みながらグダグダ書いてる」
わけなんですが(うわー、マジメなみなさんゴメンナサイ!!!ダメ人間なんです><)
昨日の日記は、 「書いた後に1回くらい読み直せ!!!」 と思ったわけですよ・・・ほんとに>自分


信じちゃいけませんよ~
「一緒に考えてください!!!」
そして僕を真っ当な人間に更正させてください。。。


そういえば、ぽぴ王子さんにマイ○クさんになっていただきました。
「出身が一緒の市、しかも隣町。」 というありえない状況でして・・・・
次回勉強会にてご挨拶させてください・・・




というわけで一農民としては【ぽぴ王子さん】との主従関係を気にする【ふ】ですが、
今回のお題は「Literals」@C++の中から「実数リテラル」についてです。
教科書は同じく「ISO/IEC 14882:2003(E)」です。

ではさっそく。
---------------------------------------------------------------
  floating-literal:
    fractional-constant exponent-part(opt) floating-suffix(opt)
    digit-sequence exponent-part floating-suffix(opt)
  fractional-constant:
    digit-sequence(opt) . digit-sequence
    digit-sequence .
  exponent-part:
    e sign(opt) digit-sequence
    E sign(opt) digit-sequence
  sign: one of
    + -
  digit-sequence:
    digit
    digit-sequence digit
  floating-suffix: one of
    f l F L
---------------------------------------------------------------

いっこずつ見て行きましょう。
---------------------------------------------------------------
  floating-literal:
    fractional-constant exponent-part(opt) floating-suffix(opt)
    digit-sequence exponent-part floating-suffix(opt)
---------------------------------------------------------------
さっそくですが・・・   floating-literal:(実数リテラル)は
fractional-constant exponent-part(opt) floating-suffix(opt):ちょっとバラすと・・・
fractional-constant:小数部の定数(詳細は後述)
exponent-part(opt):指数部(オプション)
floating-suffix(opt):浮動少数サフィックス(オプション)から構成されているというわけですね。

もしくは、
digit-sequence exponent-part floating-suffix(opt):数値の連続+指数部+浮動少数サフィックス(オプション)になります。


---------------------------------------------------------------
  fractional-constant:
    digit-sequence(opt) . digit-sequence
    digit-sequence .
---------------------------------------------------------------
fractional-constant:小数部の定数・・・これの定義はというと、
digit-sequence(opt) . digit-sequence:数値(オプション)+.+数値ですね。
1.1111・・・もあれば、
.1111・・・・表記もOKということですね。

また、
digit-sequence .:数値+.もありなんですね。
さすがにこれはあまり使わないなぁ・・・と、
double a = 1.;  (VC2005で確認)
ちゃんと、1.000・・・になってました。

---------------------------------------------------------------
  exponent-part:
    e sign(opt) digit-sequence:
    E sign(opt) digit-sequence:
---------------------------------------------------------------
  exponent-part:指数部の定義はというと。。。
    e sign(opt) digit-sequence:
    E sign(opt) digit-sequence:
[eE]どちらか+正負記号(オプション)+10進数値の列
ということですね。

---------------------------------------------------------------
  sign: one of
    + -
---------------------------------------------------------------
これは単純ですね。
正負の記号は[+-]どちらかであるということですね。

---------------------------------------------------------------
  digit-sequence:
    digit
    digit-sequence digit
---------------------------------------------------------------
数値の列は再帰再帰でいつまでもOKw

---------------------------------------------------------------
  floating-suffix: one of
    f l F L
---------------------------------------------------------------
そして実数のサフィックスはというと・・・
[fFlL]どれかなわけですね。


今日はあっさりなんで少し文章も読みましょうか。
---------------------------------------------------------------
The type of a floating literal is double unless explicitly specified by a suffix.
---------------------------------------------------------------
特にサフィックスの指定がなければdoubleだよー、と謳っています。浮動少数ではfloatではなくdoubleが基本であることがこんなとこでもでてますね。

---------------------------------------------------------------
The suffixes f and F specify float, the suffixes l and L specify long double.
---------------------------------------------------------------
サフィックスの[fF]どちらか指定があったらfloatにしますよ、[lL]どちらか指定があったらはlong doubleにしますよ、ってことですね。

>そして実数のサフィックスはというと・・・
>[fFlL]どれかなわけですね。


というわけで、あえて【FL】なんてサフィックスを付けてみました。
double d =11.11FL;
error C2059: 構文エラー : 'サフィックスが無効です。'

OKです!(って昨日からエラー出して何を喜んでいるのか。。。)

投稿日時 : 2007年2月16日 22:20

コメント

# re: 【C++】Literals(その3:実数リテラル) 2007/02/19 12:52 とっちゃん
うーん。ボケるところも突っ込むところもないなぁw<おい!

あ、そういえば、float サフィックスは、f ですね。こちらはなぜか大文字は使わないw
整数のときとは逆なんですが、やっぱりなぜそうなのかいまだによく判んねーですw

long double は使ったことがないなぁ。。。今のところ必要性に駆られていないというのもあるけどw
ま、ほとんどが float 程度の精度で十分だったりするんだけどねww

# re: 【C++】Literals(その3:実数リテラル) 2007/02/19 14:56
>とっちゃんさん

>うーん。ボケるところも突っ込むところもないなぁw<おい!

www

激しく狙われてる予感ですwww

>あ、そういえば、float サフィックスは、f ですね。こちらはなぜか大文字は使わないw
>整数のときとは逆なんですが、やっぱりなぜそうなのかいまだによく判んねーですw

自分の場合も「慣例で」そうですね。。。なんとなく「f」のほうが実数っぽく見えるから不思議ですw


>long double は使ったことがないなぁ。。。今のところ必要性に駆られていないというのもあるけどw

自分の場合は仕事上扱う数がほぼ「整数」なので・・・精度どころか実数自体にあまり必要性が無かったりしますw(さすがに無いと困りますが。。。)


>ま、ほとんどが float 程度の精度で十分だったりするんだけどねww

コードにつっこみいれるときは「実数はdouble使え~」なんてのたまってますが、自分も精度的にはfloatで問題あるような仕事はしてません。。。



# 【C++】C++が語る「お腹いっぱい」 2008/07/03 20:34 ふ 流浪の日々
【C++】C++が語る「お腹いっぱい」

# RkAjSrhrvkp 2011/09/29 1:31 http://oemfinder.com
znKwPM The material is on the five plus. But there is a minus! My internet speed 56kb/sek. The page was loading for about 40 seconds!...

# http://www.xn--pckir2bxftgg0k.com/ 2012/12/10 21:22 ロレックス コピー
だから同姓にも好感が持たれないし異性も警戒心を持つ

Post Feedback

タイトル
名前
Url:
コメント