MW211 EXIT

devlog
PHP/浮動小数点数を経由しないで
2013年11月05日
浮動小数点数を経由しないで整数を1/100する関数。
┌──────────────────────────────────────┐
│private function waru($in) {                                                │
│    $in = preg_replace('/\..*$/', '', $in);                                 │
│    if (preg_match('/^\-/', $in)) {                                         │
│        $in = substr($in, 1);                                               │
│        $in = '0000' . $in;                                                 │
│        return sprintf('-%d.%02d', substr($in, 0, -2),                      │
│                                   substr($in, -2));                        │
│    } else {                                                                │
│        $in = '0000' . $in;                                                 │
│        return sprintf('%d.%02d', substr($in, 0, -2),                       │
│                                  substr($in, -2));                         │
│    }                                                                       │
│}                                                                           │
└──────────────────────────────────────┘

浮動小数点数を経由しないで小数を100倍する関数。
┌──────────────────────────────────────┐
│private function kakeru($in) {                                              │
│    return intval(str_replace('.',                                          │
│                              '',                                           │
│                              preg_replace('/(?<=\..{2}).*$/',              │
│                                           '',                              │
│                                           $in)));                          │
│}                                                                           │
└──────────────────────────────────────┘

いずれも文字列で処理している。
分類:PHP