codekingpro/portable-devtools
115k
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.3. Mathematical Functions and Operators</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="functions-comparison.html" title="9.2. Comparison Functions and Operators" /><link rel="next" href="functions-string.html" title="9.4. String Functions and Operators" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">9.3. Mathematical Functions and Operators</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="functions-comparison.html" title="9.2. Comparison Functions and Operators">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="functions.html" title="Chapter 9. Functions and Operators">Up</a></td><th width="60%" align="center">Chapter 9. Functions and Operators</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="functions-string.html" title="9.4. String Functions and Operators">Next</a></td></tr></table><hr /></div><div class="sect1" id="FUNCTIONS-MATH"><div class="titlepage"><div><div><h2 class="title" style="clear: both">9.3. Mathematical Functions and Operators <a href="#FUNCTIONS-MATH" class="id_link">#</a></h2></div></div></div><p>3 Mathematical operators are provided for many4 <span class="productname">PostgreSQL</span> types. For types without5 standard mathematical conventions6 (e.g., date/time types) we7 describe the actual behavior in subsequent sections.8 </p><p>9 <a class="xref" href="functions-math.html#FUNCTIONS-MATH-OP-TABLE" title="Table 9.4. Mathematical Operators">Table 9.4</a> shows the mathematical10 operators that are available for the standard numeric types.11 Unless otherwise noted, operators shown as12 accepting <em class="replaceable"><code>numeric_type</code></em> are available for all13 the types <code class="type">smallint</code>, <code class="type">integer</code>,14 <code class="type">bigint</code>, <code class="type">numeric</code>, <code class="type">real</code>,15 and <code class="type">double precision</code>.16 Operators shown as accepting <em class="replaceable"><code>integral_type</code></em>17 are available for the types <code class="type">smallint</code>, <code class="type">integer</code>,18 and <code class="type">bigint</code>.19 Except where noted, each form of an operator returns the same data type20 as its argument(s). Calls involving multiple argument data types, such21 as <code class="type">integer</code> <code class="literal">+</code> <code class="type">numeric</code>,22 are resolved by using the type appearing later in these lists.23 </p><div class="table" id="FUNCTIONS-MATH-OP-TABLE"><p class="title"><strong>Table 9.4. Mathematical Operators</strong></p><div class="table-contents"><table class="table" summary="Mathematical Operators" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">24 Operator25 </p>26 <p>27 Description28 </p>29 <p>30 Example(s)31 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">32 <em class="replaceable"><code>numeric_type</code></em> <code class="literal">+</code> <em class="replaceable"><code>numeric_type</code></em>33 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>34 </p>35 <p>36 Addition37 </p>38 <p>39 <code class="literal">2 + 3</code>40 → <code class="returnvalue">5</code>41 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">42 <code class="literal">+</code> <em class="replaceable"><code>numeric_type</code></em>43 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>44 </p>45 <p>46 Unary plus (no operation)47 </p>48 <p>49 <code class="literal">+ 3.5</code>50 → <code class="returnvalue">3.5</code>51 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">52 <em class="replaceable"><code>numeric_type</code></em> <code class="literal">-</code> <em class="replaceable"><code>numeric_type</code></em>53 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>54 </p>55 <p>56 Subtraction57 </p>58 <p>59 <code class="literal">2 - 3</code>60 → <code class="returnvalue">-1</code>61 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">62 <code class="literal">-</code> <em class="replaceable"><code>numeric_type</code></em>63 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>64 </p>65 <p>66 Negation67 </p>68 <p>69 <code class="literal">- (-4)</code>70 → <code class="returnvalue">4</code>71 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">72 <em class="replaceable"><code>numeric_type</code></em> <code class="literal">*</code> <em class="replaceable"><code>numeric_type</code></em>73 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>74 </p>75 <p>76 Multiplication77 </p>78 <p>79 <code class="literal">2 * 3</code>80 → <code class="returnvalue">6</code>81 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">82 <em class="replaceable"><code>numeric_type</code></em> <code class="literal">/</code> <em class="replaceable"><code>numeric_type</code></em>83 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>84 </p>85 <p>86 Division (for integral types, division truncates the result towards87 zero)88 </p>89 <p>90 <code class="literal">5.0 / 2</code>91 → <code class="returnvalue">2.5000000000000000</code>92 </p>93 <p>94 <code class="literal">5 / 2</code>95 → <code class="returnvalue">2</code>96 </p>97 <p>98 <code class="literal">(-5) / 2</code>99 → <code class="returnvalue">-2</code>100 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">101 <em class="replaceable"><code>numeric_type</code></em> <code class="literal">%</code> <em class="replaceable"><code>numeric_type</code></em>102 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>103 </p>104 <p>105 Modulo (remainder); available for <code class="type">smallint</code>,106 <code class="type">integer</code>, <code class="type">bigint</code>, and <code class="type">numeric</code>107 </p>108 <p>109 <code class="literal">5 % 4</code>110 → <code class="returnvalue">1</code>111 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">112 <code class="type">numeric</code> <code class="literal">^</code> <code class="type">numeric</code>113 → <code class="returnvalue">numeric</code>114 </p>115 <p class="func_signature">116 <code class="type">double precision</code> <code class="literal">^</code> <code class="type">double precision</code>117 → <code class="returnvalue">double precision</code>118 </p>119 <p>120 Exponentiation121 </p>122 <p>123 <code class="literal">2 ^ 3</code>124 → <code class="returnvalue">8</code>125 </p>126 <p>127 Unlike typical mathematical practice, multiple uses of128 <code class="literal">^</code> will associate left to right by default:129 </p>130 <p>131 <code class="literal">2 ^ 3 ^ 3</code>132 → <code class="returnvalue">512</code>133 </p>134 <p>135 <code class="literal">2 ^ (3 ^ 3)</code>136 → <code class="returnvalue">134217728</code>137 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">138 <code class="literal">|/</code> <code class="type">double precision</code>139 → <code class="returnvalue">double precision</code>140 </p>141 <p>142 Square root143 </p>144 <p>145 <code class="literal">|/ 25.0</code>146 → <code class="returnvalue">5</code>147 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">148 <code class="literal">||/</code> <code class="type">double precision</code>149 → <code class="returnvalue">double precision</code>150 </p>151 <p>152 Cube root153 </p>154 <p>155 <code class="literal">||/ 64.0</code>156 → <code class="returnvalue">4</code>157 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">158 <code class="literal">@</code> <em class="replaceable"><code>numeric_type</code></em>159 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>160 </p>161 <p>162 Absolute value163 </p>164 <p>165 <code class="literal">@ -5.0</code>166 → <code class="returnvalue">5.0</code>167 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">168 <em class="replaceable"><code>integral_type</code></em> <code class="literal">&</code> <em class="replaceable"><code>integral_type</code></em>169 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>170 </p>171 <p>172 Bitwise AND173 </p>174 <p>175 <code class="literal">91 & 15</code>176 → <code class="returnvalue">11</code>177 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">178 <em class="replaceable"><code>integral_type</code></em> <code class="literal">|</code> <em class="replaceable"><code>integral_type</code></em>179 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>180 </p>181 <p>182 Bitwise OR183 </p>184 <p>185 <code class="literal">32 | 3</code>186 → <code class="returnvalue">35</code>187 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">188 <em class="replaceable"><code>integral_type</code></em> <code class="literal">#</code> <em class="replaceable"><code>integral_type</code></em>189 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>190 </p>191 <p>192 Bitwise exclusive OR193 </p>194 <p>195 <code class="literal">17 # 5</code>196 → <code class="returnvalue">20</code>197 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">198 <code class="literal">~</code> <em class="replaceable"><code>integral_type</code></em>199 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>200 </p>201 <p>202 Bitwise NOT203 </p>204 <p>205 <code class="literal">~1</code>206 → <code class="returnvalue">-2</code>207 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">208 <em class="replaceable"><code>integral_type</code></em> <code class="literal"><<</code> <code class="type">integer</code>209 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>210 </p>211 <p>212 Bitwise shift left213 </p>214 <p>215 <code class="literal">1 << 4</code>216 → <code class="returnvalue">16</code>217 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">218 <em class="replaceable"><code>integral_type</code></em> <code class="literal">>></code> <code class="type">integer</code>219 → <code class="returnvalue"><em class="replaceable"><code>integral_type</code></em></code>220 </p>221 <p>222 Bitwise shift right223 </p>224 <p>225 <code class="literal">8 >> 2</code>226 → <code class="returnvalue">2</code>227 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>228 <a class="xref" href="functions-math.html#FUNCTIONS-MATH-FUNC-TABLE" title="Table 9.5. Mathematical Functions">Table 9.5</a> shows the available229 mathematical functions.230 Many of these functions are provided in multiple forms with different231 argument types.232 Except where noted, any given form of a function returns the same233 data type as its argument(s); cross-type cases are resolved in the234 same way as explained above for operators.235 The functions working with <code class="type">double precision</code> data are mostly236 implemented on top of the host system's C library; accuracy and behavior in237 boundary cases can therefore vary depending on the host system.238 </p><div class="table" id="FUNCTIONS-MATH-FUNC-TABLE"><p class="title"><strong>Table 9.5. Mathematical Functions</strong></p><div class="table-contents"><table class="table" summary="Mathematical Functions" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">239 Function240 </p>241 <p>242 Description243 </p>244 <p>245 Example(s)246 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">247 <a id="id-1.5.8.9.6.2.2.1.1.1.1" class="indexterm"></a>248 <code class="function">abs</code> ( <em class="replaceable"><code>numeric_type</code></em> )249 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>250 </p>251 <p>252 Absolute value253 </p>254 <p>255 <code class="literal">abs(-17.4)</code>256 → <code class="returnvalue">17.4</code>257 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">258 <a id="id-1.5.8.9.6.2.2.2.1.1.1" class="indexterm"></a>259 <code class="function">cbrt</code> ( <code class="type">double precision</code> )260 → <code class="returnvalue">double precision</code>261 </p>262 <p>263 Cube root264 </p>265 <p>266 <code class="literal">cbrt(64.0)</code>267 → <code class="returnvalue">4</code>268 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">269 <a id="id-1.5.8.9.6.2.2.3.1.1.1" class="indexterm"></a>270 <code class="function">ceil</code> ( <code class="type">numeric</code> )271 → <code class="returnvalue">numeric</code>272 </p>273 <p class="func_signature">274 <code class="function">ceil</code> ( <code class="type">double precision</code> )275 → <code class="returnvalue">double precision</code>276 </p>277 <p>278 Nearest integer greater than or equal to argument279 </p>280 <p>281 <code class="literal">ceil(42.2)</code>282 → <code class="returnvalue">43</code>283 </p>284 <p>285 <code class="literal">ceil(-42.8)</code>286 → <code class="returnvalue">-42</code>287 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">288 <a id="id-1.5.8.9.6.2.2.4.1.1.1" class="indexterm"></a>289 <code class="function">ceiling</code> ( <code class="type">numeric</code> )290 → <code class="returnvalue">numeric</code>291 </p>292 <p class="func_signature">293 <code class="function">ceiling</code> ( <code class="type">double precision</code> )294 → <code class="returnvalue">double precision</code>295 </p>296 <p>297 Nearest integer greater than or equal to argument (same298 as <code class="function">ceil</code>)299 </p>300 <p>301 <code class="literal">ceiling(95.3)</code>302 → <code class="returnvalue">96</code>303 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">304 <a id="id-1.5.8.9.6.2.2.5.1.1.1" class="indexterm"></a>305 <code class="function">degrees</code> ( <code class="type">double precision</code> )306 → <code class="returnvalue">double precision</code>307 </p>308 <p>309 Converts radians to degrees310 </p>311 <p>312 <code class="literal">degrees(0.5)</code>313 → <code class="returnvalue">28.64788975654116</code>314 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">315 <a id="id-1.5.8.9.6.2.2.6.1.1.1" class="indexterm"></a>316 <code class="function">div</code> ( <em class="parameter"><code>y</code></em> <code class="type">numeric</code>,317 <em class="parameter"><code>x</code></em> <code class="type">numeric</code> )318 → <code class="returnvalue">numeric</code>319 </p>320 <p>321 Integer quotient of <em class="parameter"><code>y</code></em>/<em class="parameter"><code>x</code></em>322 (truncates towards zero)323 </p>324 <p>325 <code class="literal">div(9, 4)</code>326 → <code class="returnvalue">2</code>327 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">328 <a id="id-1.5.8.9.6.2.2.7.1.1.1" class="indexterm"></a>329 <code class="function">erf</code> ( <code class="type">double precision</code> )330 → <code class="returnvalue">double precision</code>331 </p>332 <p>333 Error function334 </p>335 <p>336 <code class="literal">erf(1.0)</code>337 → <code class="returnvalue">0.8427007929497149</code>338 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">339 <a id="id-1.5.8.9.6.2.2.8.1.1.1" class="indexterm"></a>340 <code class="function">erfc</code> ( <code class="type">double precision</code> )341 → <code class="returnvalue">double precision</code>342 </p>343 <p>344 Complementary error function (<code class="literal">1 - erf(x)</code>, without345 loss of precision for large inputs)346 </p>347 <p>348 <code class="literal">erfc(1.0)</code>349 → <code class="returnvalue">0.15729920705028513</code>350 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">351 <a id="id-1.5.8.9.6.2.2.9.1.1.1" class="indexterm"></a>352 <code class="function">exp</code> ( <code class="type">numeric</code> )353 → <code class="returnvalue">numeric</code>354 </p>355 <p class="func_signature">356 <code class="function">exp</code> ( <code class="type">double precision</code> )357 → <code class="returnvalue">double precision</code>358 </p>359 <p>360 Exponential (<code class="literal">e</code> raised to the given power)361 </p>362 <p>363 <code class="literal">exp(1.0)</code>364 → <code class="returnvalue">2.7182818284590452</code>365 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">366 <a id="FUNCTION-FACTORIAL" class="indexterm"></a>367 <code class="function">factorial</code> ( <code class="type">bigint</code> )368 → <code class="returnvalue">numeric</code>369 </p>370 <p>371 Factorial372 </p>373 <p>374 <code class="literal">factorial(5)</code>375 → <code class="returnvalue">120</code>376 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">377 <a id="id-1.5.8.9.6.2.2.11.1.1.1" class="indexterm"></a>378 <code class="function">floor</code> ( <code class="type">numeric</code> )379 → <code class="returnvalue">numeric</code>380 </p>381 <p class="func_signature">382 <code class="function">floor</code> ( <code class="type">double precision</code> )383 → <code class="returnvalue">double precision</code>384 </p>385 <p>386 Nearest integer less than or equal to argument387 </p>388 <p>389 <code class="literal">floor(42.8)</code>390 → <code class="returnvalue">42</code>391 </p>392 <p>393 <code class="literal">floor(-42.8)</code>394 → <code class="returnvalue">-43</code>395 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">396 <a id="id-1.5.8.9.6.2.2.12.1.1.1" class="indexterm"></a>397 <code class="function">gcd</code> ( <em class="replaceable"><code>numeric_type</code></em>, <em class="replaceable"><code>numeric_type</code></em> )398 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>399 </p>400 <p>401 Greatest common divisor (the largest positive number that divides both402 inputs with no remainder); returns <code class="literal">0</code> if both inputs403 are zero; available for <code class="type">integer</code>, <code class="type">bigint</code>,404 and <code class="type">numeric</code>405 </p>406 <p>407 <code class="literal">gcd(1071, 462)</code>408 → <code class="returnvalue">21</code>409 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">410 <a id="id-1.5.8.9.6.2.2.13.1.1.1" class="indexterm"></a>411 <code class="function">lcm</code> ( <em class="replaceable"><code>numeric_type</code></em>, <em class="replaceable"><code>numeric_type</code></em> )412 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>413 </p>414 <p>415 Least common multiple (the smallest strictly positive number that is416 an integral multiple of both inputs); returns <code class="literal">0</code> if417 either input is zero; available for <code class="type">integer</code>,418 <code class="type">bigint</code>, and <code class="type">numeric</code>419 </p>420 <p>421 <code class="literal">lcm(1071, 462)</code>422 → <code class="returnvalue">23562</code>423 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">424 <a id="id-1.5.8.9.6.2.2.14.1.1.1" class="indexterm"></a>425 <code class="function">ln</code> ( <code class="type">numeric</code> )426 → <code class="returnvalue">numeric</code>427 </p>428 <p class="func_signature">429 <code class="function">ln</code> ( <code class="type">double precision</code> )430 → <code class="returnvalue">double precision</code>431 </p>432 <p>433 Natural logarithm434 </p>435 <p>436 <code class="literal">ln(2.0)</code>437 → <code class="returnvalue">0.6931471805599453</code>438 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">439 <a id="id-1.5.8.9.6.2.2.15.1.1.1" class="indexterm"></a>440 <code class="function">log</code> ( <code class="type">numeric</code> )441 → <code class="returnvalue">numeric</code>442 </p>443 <p class="func_signature">444 <code class="function">log</code> ( <code class="type">double precision</code> )445 → <code class="returnvalue">double precision</code>446 </p>447 <p>448 Base 10 logarithm449 </p>450 <p>451 <code class="literal">log(100)</code>452 → <code class="returnvalue">2</code>453 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">454 <a id="id-1.5.8.9.6.2.2.16.1.1.1" class="indexterm"></a>455 <code class="function">log10</code> ( <code class="type">numeric</code> )456 → <code class="returnvalue">numeric</code>457 </p>458 <p class="func_signature">459 <code class="function">log10</code> ( <code class="type">double precision</code> )460 → <code class="returnvalue">double precision</code>461 </p>462 <p>463 Base 10 logarithm (same as <code class="function">log</code>)464 </p>465 <p>466 <code class="literal">log10(1000)</code>467 → <code class="returnvalue">3</code>468 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">469 <code class="function">log</code> ( <em class="parameter"><code>b</code></em> <code class="type">numeric</code>,470 <em class="parameter"><code>x</code></em> <code class="type">numeric</code> )471 → <code class="returnvalue">numeric</code>472 </p>473 <p>474 Logarithm of <em class="parameter"><code>x</code></em> to base <em class="parameter"><code>b</code></em>475 </p>476 <p>477 <code class="literal">log(2.0, 64.0)</code>478 → <code class="returnvalue">6.0000000000000000</code>479 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">480 <a id="id-1.5.8.9.6.2.2.18.1.1.1" class="indexterm"></a>481 <code class="function">min_scale</code> ( <code class="type">numeric</code> )482 → <code class="returnvalue">integer</code>483 </p>484 <p>485 Minimum scale (number of fractional decimal digits) needed486 to represent the supplied value precisely487 </p>488 <p>489 <code class="literal">min_scale(8.4100)</code>490 → <code class="returnvalue">2</code>491 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">492 <a id="id-1.5.8.9.6.2.2.19.1.1.1" class="indexterm"></a>493 <code class="function">mod</code> ( <em class="parameter"><code>y</code></em> <em class="replaceable"><code>numeric_type</code></em>,494 <em class="parameter"><code>x</code></em> <em class="replaceable"><code>numeric_type</code></em> )495 → <code class="returnvalue"><em class="replaceable"><code>numeric_type</code></em></code>496 </p>497 <p>498 Remainder of <em class="parameter"><code>y</code></em>/<em class="parameter"><code>x</code></em>;499 available for <code class="type">smallint</code>, <code class="type">integer</code>,500 <code class="type">bigint</code>, and <code class="type">numeric</code>501 </p>502 <p>503 <code class="literal">mod(9, 4)</code>504 → <code class="returnvalue">1</code>505 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">506 <a id="id-1.5.8.9.6.2.2.20.1.1.1" class="indexterm"></a>507 <code class="function">pi</code> ( )508 → <code class="returnvalue">double precision</code>509 </p>510 <p>511 Approximate value of <span class="symbol_font">π</span>512 </p>513 <p>514 <code class="literal">pi()</code>515 → <code class="returnvalue">3.141592653589793</code>516 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">517 <a id="id-1.5.8.9.6.2.2.21.1.1.1" class="indexterm"></a>518 <code class="function">power</code> ( <em class="parameter"><code>a</code></em> <code class="type">numeric</code>,519 <em class="parameter"><code>b</code></em> <code class="type">numeric</code> )520 → <code class="returnvalue">numeric</code>521 </p>522 <p class="func_signature">523 <code class="function">power</code> ( <em class="parameter"><code>a</code></em> <code class="type">double precision</code>,524 <em class="parameter"><code>b</code></em> <code class="type">double precision</code> )525 → <code class="returnvalue">double precision</code>526 </p>527 <p>528 <em class="parameter"><code>a</code></em> raised to the power of <em class="parameter"><code>b</code></em>529 </p>530 <p>531 <code class="literal">power(9, 3)</code>532 → <code class="returnvalue">729</code>533 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">534 <a id="id-1.5.8.9.6.2.2.22.1.1.1" class="indexterm"></a>535 <code class="function">radians</code> ( <code class="type">double precision</code> )536 → <code class="returnvalue">double precision</code>537 </p>538 <p>539 Converts degrees to radians540 </p>541 <p>542 <code class="literal">radians(45.0)</code>543 → <code class="returnvalue">0.7853981633974483</code>544 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">545 <a id="id-1.5.8.9.6.2.2.23.1.1.1" class="indexterm"></a>546 <code class="function">round</code> ( <code class="type">numeric</code> )547 → <code class="returnvalue">numeric</code>548 </p>549 <p class="func_signature">550 <code class="function">round</code> ( <code class="type">double precision</code> )551 → <code class="returnvalue">double precision</code>552 </p>553 <p>554 Rounds to nearest integer. For <code class="type">numeric</code>, ties are555 broken by rounding away from zero. For <code class="type">double precision</code>,556 the tie-breaking behavior is platform dependent, but557 <span class="quote">“<span class="quote">round to nearest even</span>”</span> is the most common rule.558 </p>559 <p>560 <code class="literal">round(42.4)</code>561 → <code class="returnvalue">42</code>562 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">563 <code class="function">round</code> ( <em class="parameter"><code>v</code></em> <code class="type">numeric</code>, <em class="parameter"><code>s</code></em> <code class="type">integer</code> )564 → <code class="returnvalue">numeric</code>565 </p>566 <p>567 Rounds <em class="parameter"><code>v</code></em> to <em class="parameter"><code>s</code></em> decimal568 places. Ties are broken by rounding away from zero.569 </p>570 <p>571 <code class="literal">round(42.4382, 2)</code>572 → <code class="returnvalue">42.44</code>573 </p>574 <p>575 <code class="literal">round(1234.56, -1)</code>576 → <code class="returnvalue">1230</code>577 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">578 <a id="id-1.5.8.9.6.2.2.25.1.1.1" class="indexterm"></a>579 <code class="function">scale</code> ( <code class="type">numeric</code> )580 → <code class="returnvalue">integer</code>581 </p>582 <p>583 Scale of the argument (the number of decimal digits in the fractional part)584 </p>585 <p>586 <code class="literal">scale(8.4100)</code>587 → <code class="returnvalue">4</code>588 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">589 <a id="id-1.5.8.9.6.2.2.26.1.1.1" class="indexterm"></a>590 <code class="function">sign</code> ( <code class="type">numeric</code> )591 → <code class="returnvalue">numeric</code>592 </p>593 <p class="func_signature">594 <code class="function">sign</code> ( <code class="type">double precision</code> )595 → <code class="returnvalue">double precision</code>596 </p>597 <p>598 Sign of the argument (-1, 0, or +1)599 </p>600 <p>601 <code class="literal">sign(-8.4)</code>602 → <code class="returnvalue">-1</code>603 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">604 <a id="id-1.5.8.9.6.2.2.27.1.1.1" class="indexterm"></a>605 <code class="function">sqrt</code> ( <code class="type">numeric</code> )606 → <code class="returnvalue">numeric</code>607 </p>608 <p class="func_signature">609 <code class="function">sqrt</code> ( <code class="type">double precision</code> )610 → <code class="returnvalue">double precision</code>611 </p>612 <p>613 Square root614 </p>615 <p>616 <code class="literal">sqrt(2)</code>617 → <code class="returnvalue">1.4142135623730951</code>618 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">619 <a id="id-1.5.8.9.6.2.2.28.1.1.1" class="indexterm"></a>620 <code class="function">trim_scale</code> ( <code class="type">numeric</code> )621 → <code class="returnvalue">numeric</code>622 </p>623 <p>624 Reduces the value's scale (number of fractional decimal digits) by625 removing trailing zeroes626 </p>627 <p>628 <code class="literal">trim_scale(8.4100)</code>629 → <code class="returnvalue">8.41</code>630 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">631 <a id="id-1.5.8.9.6.2.2.29.1.1.1" class="indexterm"></a>632 <code class="function">trunc</code> ( <code class="type">numeric</code> )633 → <code class="returnvalue">numeric</code>634 </p>635 <p class="func_signature">636 <code class="function">trunc</code> ( <code class="type">double precision</code> )637 → <code class="returnvalue">double precision</code>638 </p>639 <p>640 Truncates to integer (towards zero)641 </p>642 <p>643 <code class="literal">trunc(42.8)</code>644 → <code class="returnvalue">42</code>645 </p>646 <p>647 <code class="literal">trunc(-42.8)</code>648 → <code class="returnvalue">-42</code>649 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">650 <code class="function">trunc</code> ( <em class="parameter"><code>v</code></em> <code class="type">numeric</code>, <em class="parameter"><code>s</code></em> <code class="type">integer</code> )651 → <code class="returnvalue">numeric</code>652 </p>653 <p>654 Truncates <em class="parameter"><code>v</code></em> to <em class="parameter"><code>s</code></em>655 decimal places656 </p>657 <p>658 <code class="literal">trunc(42.4382, 2)</code>659 → <code class="returnvalue">42.43</code>660 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">661 <a id="id-1.5.8.9.6.2.2.31.1.1.1" class="indexterm"></a>662 <code class="function">width_bucket</code> ( <em class="parameter"><code>operand</code></em> <code class="type">numeric</code>, <em class="parameter"><code>low</code></em> <code class="type">numeric</code>, <em class="parameter"><code>high</code></em> <code class="type">numeric</code>, <em class="parameter"><code>count</code></em> <code class="type">integer</code> )663 → <code class="returnvalue">integer</code>664 </p>665 <p class="func_signature">666 <code class="function">width_bucket</code> ( <em class="parameter"><code>operand</code></em> <code class="type">double precision</code>, <em class="parameter"><code>low</code></em> <code class="type">double precision</code>, <em class="parameter"><code>high</code></em> <code class="type">double precision</code>, <em class="parameter"><code>count</code></em> <code class="type">integer</code> )667 → <code class="returnvalue">integer</code>668 </p>669 <p>670 Returns the number of the bucket in671 which <em class="parameter"><code>operand</code></em> falls in a histogram672 having <em class="parameter"><code>count</code></em> equal-width buckets spanning the673 range <em class="parameter"><code>low</code></em> to <em class="parameter"><code>high</code></em>.674 Returns <code class="literal">0</code>675 or <code class="literal"><em class="parameter"><code>count</code></em>+1</code> for an input676 outside that range.677 </p>678 <p>679 <code class="literal">width_bucket(5.35, 0.024, 10.06, 5)</code>680 → <code class="returnvalue">3</code>681 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">682 <code class="function">width_bucket</code> ( <em class="parameter"><code>operand</code></em> <code class="type">anycompatible</code>, <em class="parameter"><code>thresholds</code></em> <code class="type">anycompatiblearray</code> )683 → <code class="returnvalue">integer</code>684 </p>685 <p>686 Returns the number of the bucket in687 which <em class="parameter"><code>operand</code></em> falls given an array listing the688 lower bounds of the buckets. Returns <code class="literal">0</code> for an689 input less than the first lower690 bound. <em class="parameter"><code>operand</code></em> and the array elements can be691 of any type having standard comparison operators.692 The <em class="parameter"><code>thresholds</code></em> array <span class="emphasis"><em>must be693 sorted</em></span>, smallest first, or unexpected results will be694 obtained.695 </p>696 <p>697 <code class="literal">width_bucket(now(), array['yesterday', 'today', 'tomorrow']::timestamptz[])</code>698 → <code class="returnvalue">2</code>699 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>700 <a class="xref" href="functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE" title="Table 9.6. Random Functions">Table 9.6</a> shows functions for701 generating random numbers.702 </p><div class="table" id="FUNCTIONS-MATH-RANDOM-TABLE"><p class="title"><strong>Table 9.6. Random Functions</strong></p><div class="table-contents"><table class="table" summary="Random Functions" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">703 Function704 </p>705 <p>706 Description707 </p>708 <p>709 Example(s)710 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">711 <a id="id-1.5.8.9.8.2.2.1.1.1.1" class="indexterm"></a>712 <code class="function">random</code> ( )713 → <code class="returnvalue">double precision</code>714 </p>715 <p>716 Returns a random value in the range 0.0 <= x < 1.0717 </p>718 <p>719 <code class="literal">random()</code>720 → <code class="returnvalue">0.897124072839091</code>721 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">722 <a id="id-1.5.8.9.8.2.2.2.1.1.1" class="indexterm"></a>723 724 <code class="function">random_normal</code> (725 [<span class="optional"> <em class="parameter"><code>mean</code></em> <code class="type">double precision</code>726 [<span class="optional">, <em class="parameter"><code>stddev</code></em> <code class="type">double precision</code> </span>]</span>] )727 → <code class="returnvalue">double precision</code>728 </p>729 <p>730 Returns a random value from the normal distribution with the given731 parameters; <em class="parameter"><code>mean</code></em> defaults to 0.0732 and <em class="parameter"><code>stddev</code></em> defaults to 1.0733 </p>734 <p>735 <code class="literal">random_normal(0.0, 1.0)</code>736 → <code class="returnvalue">0.051285419</code>737 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">738 <a id="id-1.5.8.9.8.2.2.3.1.1.1" class="indexterm"></a>739 <code class="function">setseed</code> ( <code class="type">double precision</code> )740 → <code class="returnvalue">void</code>741 </p>742 <p>743 Sets the seed for subsequent <code class="literal">random()</code> and744 <code class="literal">random_normal()</code> calls;745 argument must be between -1.0 and 1.0, inclusive746 </p>747 <p>748 <code class="literal">setseed(0.12345)</code>749 </p></td></tr></tbody></table></div></div><br class="table-break" /><p>750 The <code class="function">random()</code> function uses a deterministic751 pseudo-random number generator.752 It is fast but not suitable for cryptographic753 applications; see the <a class="xref" href="pgcrypto.html" title="F.28. pgcrypto — cryptographic functions">pgcrypto</a> module for a more754 secure alternative.755 If <code class="function">setseed()</code> is called, the series of results of756 subsequent <code class="function">random()</code> calls in the current session757 can be repeated by re-issuing <code class="function">setseed()</code> with the same758 argument.759 Without any prior <code class="function">setseed()</code> call in the same760 session, the first <code class="function">random()</code> call obtains a seed761 from a platform-dependent source of random bits.762 These remarks hold equally for <code class="function">random_normal()</code>.763 </p><p>764 <a class="xref" href="functions-math.html#FUNCTIONS-MATH-TRIG-TABLE" title="Table 9.7. Trigonometric Functions">Table 9.7</a> shows the765 available trigonometric functions. Each of these functions comes in766 two variants, one that measures angles in radians and one that767 measures angles in degrees.768 </p><div class="table" id="FUNCTIONS-MATH-TRIG-TABLE"><p class="title"><strong>Table 9.7. Trigonometric Functions</strong></p><div class="table-contents"><table class="table" summary="Trigonometric Functions" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">769 Function770 </p>771 <p>772 Description773 </p>774 <p>775 Example(s)776 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">777 <a id="id-1.5.8.9.11.2.2.1.1.1.1" class="indexterm"></a>778 <code class="function">acos</code> ( <code class="type">double precision</code> )779 → <code class="returnvalue">double precision</code>780 </p>781 <p>782 Inverse cosine, result in radians783 </p>784 <p>785 <code class="literal">acos(1)</code>786 → <code class="returnvalue">0</code>787 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">788 <a id="id-1.5.8.9.11.2.2.2.1.1.1" class="indexterm"></a>789 <code class="function">acosd</code> ( <code class="type">double precision</code> )790 → <code class="returnvalue">double precision</code>791 </p>792 <p>793 Inverse cosine, result in degrees794 </p>795 <p>796 <code class="literal">acosd(0.5)</code>797 → <code class="returnvalue">60</code>798 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">799 <a id="id-1.5.8.9.11.2.2.3.1.1.1" class="indexterm"></a>800 <code class="function">asin</code> ( <code class="type">double precision</code> )801 → <code class="returnvalue">double precision</code>802 </p>803 <p>804 Inverse sine, result in radians805 </p>806 <p>807 <code class="literal">asin(1)</code>808 → <code class="returnvalue">1.5707963267948966</code>809 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">810 <a id="id-1.5.8.9.11.2.2.4.1.1.1" class="indexterm"></a>811 <code class="function">asind</code> ( <code class="type">double precision</code> )812 → <code class="returnvalue">double precision</code>813 </p>814 <p>815 Inverse sine, result in degrees816 </p>817 <p>818 <code class="literal">asind(0.5)</code>819 → <code class="returnvalue">30</code>820 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">821 <a id="id-1.5.8.9.11.2.2.5.1.1.1" class="indexterm"></a>822 <code class="function">atan</code> ( <code class="type">double precision</code> )823 → <code class="returnvalue">double precision</code>824 </p>825 <p>826 Inverse tangent, result in radians827 </p>828 <p>829 <code class="literal">atan(1)</code>830 → <code class="returnvalue">0.7853981633974483</code>831 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">832 <a id="id-1.5.8.9.11.2.2.6.1.1.1" class="indexterm"></a>833 <code class="function">atand</code> ( <code class="type">double precision</code> )834 → <code class="returnvalue">double precision</code>835 </p>836 <p>837 Inverse tangent, result in degrees838 </p>839 <p>840 <code class="literal">atand(1)</code>841 → <code class="returnvalue">45</code>842 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">843 <a id="id-1.5.8.9.11.2.2.7.1.1.1" class="indexterm"></a>844 <code class="function">atan2</code> ( <em class="parameter"><code>y</code></em> <code class="type">double precision</code>,845 <em class="parameter"><code>x</code></em> <code class="type">double precision</code> )846 → <code class="returnvalue">double precision</code>847 </p>848 <p>849 Inverse tangent of850 <em class="parameter"><code>y</code></em>/<em class="parameter"><code>x</code></em>,851 result in radians852 </p>853 <p>854 <code class="literal">atan2(1, 0)</code>855 → <code class="returnvalue">1.5707963267948966</code>856 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">857 <a id="id-1.5.8.9.11.2.2.8.1.1.1" class="indexterm"></a>858 <code class="function">atan2d</code> ( <em class="parameter"><code>y</code></em> <code class="type">double precision</code>,859 <em class="parameter"><code>x</code></em> <code class="type">double precision</code> )860 → <code class="returnvalue">double precision</code>861 </p>862 <p>863 Inverse tangent of864 <em class="parameter"><code>y</code></em>/<em class="parameter"><code>x</code></em>,865 result in degrees866 </p>867 <p>868 <code class="literal">atan2d(1, 0)</code>869 → <code class="returnvalue">90</code>870 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">871 <a id="id-1.5.8.9.11.2.2.9.1.1.1" class="indexterm"></a>872 <code class="function">cos</code> ( <code class="type">double precision</code> )873 → <code class="returnvalue">double precision</code>874 </p>875 <p>876 Cosine, argument in radians877 </p>878 <p>879 <code class="literal">cos(0)</code>880 → <code class="returnvalue">1</code>881 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">882 <a id="id-1.5.8.9.11.2.2.10.1.1.1" class="indexterm"></a>883 <code class="function">cosd</code> ( <code class="type">double precision</code> )884 → <code class="returnvalue">double precision</code>885 </p>886 <p>887 Cosine, argument in degrees888 </p>889 <p>890 <code class="literal">cosd(60)</code>891 → <code class="returnvalue">0.5</code>892 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">893 <a id="id-1.5.8.9.11.2.2.11.1.1.1" class="indexterm"></a>894 <code class="function">cot</code> ( <code class="type">double precision</code> )895 → <code class="returnvalue">double precision</code>896 </p>897 <p>898 Cotangent, argument in radians899 </p>900 <p>901 <code class="literal">cot(0.5)</code>902 → <code class="returnvalue">1.830487721712452</code>903 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">904 <a id="id-1.5.8.9.11.2.2.12.1.1.1" class="indexterm"></a>905 <code class="function">cotd</code> ( <code class="type">double precision</code> )906 → <code class="returnvalue">double precision</code>907 </p>908 <p>909 Cotangent, argument in degrees910 </p>911 <p>912 <code class="literal">cotd(45)</code>913 → <code class="returnvalue">1</code>914 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">915 <a id="id-1.5.8.9.11.2.2.13.1.1.1" class="indexterm"></a>916 <code class="function">sin</code> ( <code class="type">double precision</code> )917 → <code class="returnvalue">double precision</code>918 </p>919 <p>920 Sine, argument in radians921 </p>922 <p>923 <code class="literal">sin(1)</code>924 → <code class="returnvalue">0.8414709848078965</code>925 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">926 <a id="id-1.5.8.9.11.2.2.14.1.1.1" class="indexterm"></a>927 <code class="function">sind</code> ( <code class="type">double precision</code> )928 → <code class="returnvalue">double precision</code>929 </p>930 <p>931 Sine, argument in degrees932 </p>933 <p>934 <code class="literal">sind(30)</code>935 → <code class="returnvalue">0.5</code>936 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">937 <a id="id-1.5.8.9.11.2.2.15.1.1.1" class="indexterm"></a>938 <code class="function">tan</code> ( <code class="type">double precision</code> )939 → <code class="returnvalue">double precision</code>940 </p>941 <p>942 Tangent, argument in radians943 </p>944 <p>945 <code class="literal">tan(1)</code>946 → <code class="returnvalue">1.5574077246549023</code>947 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">948 <a id="id-1.5.8.9.11.2.2.16.1.1.1" class="indexterm"></a>949 <code class="function">tand</code> ( <code class="type">double precision</code> )950 → <code class="returnvalue">double precision</code>951 </p>952 <p>953 Tangent, argument in degrees954 </p>955 <p>956 <code class="literal">tand(45)</code>957 → <code class="returnvalue">1</code>958 </p></td></tr></tbody></table></div></div><br class="table-break" /><div class="note"><h3 class="title">Note</h3><p>959 Another way to work with angles measured in degrees is to use the unit960 transformation functions <code class="literal"><code class="function">radians()</code></code>961 and <code class="literal"><code class="function">degrees()</code></code> shown earlier.962 However, using the degree-based trigonometric functions is preferred,963 as that way avoids round-off error for special cases such964 as <code class="literal">sind(30)</code>.965 </p></div><p>966 <a class="xref" href="functions-math.html#FUNCTIONS-MATH-HYP-TABLE" title="Table 9.8. Hyperbolic Functions">Table 9.8</a> shows the967 available hyperbolic functions.968 </p><div class="table" id="FUNCTIONS-MATH-HYP-TABLE"><p class="title"><strong>Table 9.8. Hyperbolic Functions</strong></p><div class="table-contents"><table class="table" summary="Hyperbolic Functions" border="1"><colgroup><col /></colgroup><thead><tr><th class="func_table_entry"><p class="func_signature">969 Function970 </p>971 <p>972 Description973 </p>974 <p>975 Example(s)976 </p></th></tr></thead><tbody><tr><td class="func_table_entry"><p class="func_signature">977 <a id="id-1.5.8.9.14.2.2.1.1.1.1" class="indexterm"></a>978 <code class="function">sinh</code> ( <code class="type">double precision</code> )979 → <code class="returnvalue">double precision</code>980 </p>981 <p>982 Hyperbolic sine983 </p>984 <p>985 <code class="literal">sinh(1)</code>986 → <code class="returnvalue">1.1752011936438014</code>987 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">988 <a id="id-1.5.8.9.14.2.2.2.1.1.1" class="indexterm"></a>989 <code class="function">cosh</code> ( <code class="type">double precision</code> )990 → <code class="returnvalue">double precision</code>991 </p>992 <p>993 Hyperbolic cosine994 </p>995 <p>996 <code class="literal">cosh(0)</code>997 → <code class="returnvalue">1</code>998 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">999 <a id="id-1.5.8.9.14.2.2.3.1.1.1" class="indexterm"></a>1000 <code class="function">tanh</code> ( <code class="type">double precision</code> )1001 → <code class="returnvalue">double precision</code>1002 </p>1003 <p>1004 Hyperbolic tangent1005 </p>1006 <p>1007 <code class="literal">tanh(1)</code>1008 → <code class="returnvalue">0.7615941559557649</code>1009 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">1010 <a id="id-1.5.8.9.14.2.2.4.1.1.1" class="indexterm"></a>1011 <code class="function">asinh</code> ( <code class="type">double precision</code> )1012 → <code class="returnvalue">double precision</code>1013 </p>1014 <p>1015 Inverse hyperbolic sine1016 </p>1017 <p>1018 <code class="literal">asinh(1)</code>1019 → <code class="returnvalue">0.881373587019543</code>1020 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">1021 <a id="id-1.5.8.9.14.2.2.5.1.1.1" class="indexterm"></a>1022 <code class="function">acosh</code> ( <code class="type">double precision</code> )1023 → <code class="returnvalue">double precision</code>1024 </p>1025 <p>1026 Inverse hyperbolic cosine1027 </p>1028 <p>1029 <code class="literal">acosh(1)</code>1030 → <code class="returnvalue">0</code>1031 </p></td></tr><tr><td class="func_table_entry"><p class="func_signature">1032 <a id="id-1.5.8.9.14.2.2.6.1.1.1" class="indexterm"></a>1033 <code class="function">atanh</code> ( <code class="type">double precision</code> )1034 → <code class="returnvalue">double precision</code>1035 </p>1036 <p>1037 Inverse hyperbolic tangent1038 </p>1039 <p>1040 <code class="literal">atanh(0.5)</code>1041 → <code class="returnvalue">0.5493061443340548</code>1042 </p></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="functions-comparison.html" title="9.2. Comparison Functions and Operators">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="functions.html" title="Chapter 9. Functions and Operators">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="functions-string.html" title="9.4. String Functions and Operators">Next</a></td></tr><tr><td width="40%" align="left" valign="top">9.2. Comparison Functions and Operators </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 9.4. String Functions and Operators</td></tr></table></div></body></html>