xl
Precision
Get Your Numbers Right
xlpPOWER
Raises one number to the power of another number, with up to 32,767 significant digits of precision.
Syntax
xlpPOWER(num,pwr,format_negative,format_thousands,format_currency,exponential_notation,maximum_significant_digits)
| num | Required. The base number being raised to a power. Can be positive or negative. Can be a non-integer. |
| pwr | Required. The exponent to which the base number is raised. Can be positive or negative. Can be a non-integer. |
| format_negative | Optional. Determines whether negatives are formatted with a leading hyphen ("-"), or parentheses ("()"). Set to 1 to format negatives with a leading hyphen. Set to 2 for parentheses. 1 by default. |
| format_thousands | Optional. Determines whether thousands separators are included. Set to TRUE to include thousands separators. FALSE by default. |
| format_currency | Optional. Determines whether currency symbol is included. Set to TRUE to include currency symbol. The currency symbol will be added either to the beginning or to the end of the result, whichever is appropriate for the locale. FALSE by default. |
| exponential_notation | Optional. Determines whether result is formatted in exponential notation. Set to TRUE to format in exponential notation. FALSE by default. |
| maximum_significant_digits | Optional. Determines the
maximum number of significant digits to be returned. Default is the maximum
number allowed by the edition of xlPrecision. If pwr is a non-integer, xlpPOWER may be unable to resolve an answer if maximum_significant_digits is the same as, or very close to, the maximum number of significant digits allowed by the xlPrecision edition. If xlpPOWER is unable to resolve an answer for this reason, it returns "#NUM!". For best results with non-integer powers in xlpPOWER, keep maximum_significant_digits at least 5 digits smaller than the maximum number of significant digits allowed by the xlPrecision edition. The default significant digits is always at least 5 digits smaller, so leaving maximum_significant_digits unspecified meets this recommendation. |
| restrict_input_lengths | Optional. If pwr is a
non-integer, returns "#NUM!" if
the combined lengths of num and pwr are more than half of the maximum number
of significant
digits allowed by the xlPrecision edition. Set to FALSE to disable this
restriction, allowing num and pwr to be as long as desired. TRUE by default. xlpPOWER may be unable to return a correct answer if the lengths of num and pwr add up to more than half of the maximum number of significant digits allowed by your edition of xlPrecision. For example, since the Free Edition allows a maximum of 150 significant digits, restrict_input_lengths would limit num and pwr to a combined total of 75 digits. Use restrict_input_lengths with caution; setting restrict_input_lengths to FALSE may cause incorrect results. This limitation applies to the total number of digits in num and pwr, not just to the number of significant digits. For example, restrict_input_lengths counts the number "25000" as 5 digits, even though it has only 2 significant digits. restrict_input_lengths is not affected by xlpPOWER's maximum_significant_digits argument. For example, if you are using the Free Edition and set xlpPOWER's maximum_significant_digits argument to 50, restrict_input_lengths still limits num and pwr to a combined total of 75 digits (not 25), because 75 is half of the 150 maximum significant digits allowed by the Free Edition. restrict_input_lengths does not affect how many significant digits xlpPOWER can return. If the lengths of num and pwr are within the limits, xlpPOWER can return as many significant digits as desired. If you are unsure how many significant digits your edition of xlPrecision allows, check Tools | xlPrecision 2.0 | About xlPrecision 2.0, or enter the formula "=xlpSD()" (without the quotes). |
Remarks
If num is negative and pwr is not
an integer, xlpPOWER will correctly return "#NUM!". The reason "#NUM!" is
returned is because there is no correct solution. If num is negative and pwr
is not an integer, there is no solution for which the (pwr) root will resolve
to num. If there is no solution for which the (pwr) root will resolve to num,
then by definition there is no correct solution. For example:
=xlpPOWER(-3, 2.5)
This formula correctly returns "#NUM!", because there is no solution for which
the 2.5 root will resolve to -3. Thus, by definition, -3 does not have a power
of 2.5.
xlPrecision results are returned as text that look like numbers, not as values that Excel recognizes as numbers. This is because Excel would truncate the results to 15 significant digits if it recognized them as numbers.
format_negative, format_thousands, format_currency, and exponential_notation are all ignored by the 25 SD edition of xlPrecision.
format_thousands and exponential_notation are ignored by the 35 SD edition of xlPrecision.
maximum_significant_digits is ignored if it is higher than the maximum significant digits allowed by the edition of xlPrecision.
Use maximum_significant_digits to increase calculation speed where desired. The lower the number used, the faster the calculation.
num and pwr can accept both numbers and text.
num and pwr can accept text formatted with the local currency symbol and thousands separators, and negatives can be formatted with either a leading hyphen or parentheses.
num and pwr can accept text up to 32,767 characters long.
You can use the results of xlPrecision functions as the operands in other xlPrecision formulas without losing any precision, but using them as operands in Excel's arithmetic functions will truncate them to 15 significant digits.
If the return value is so large that it has more than 32,767 characters to the left of the decimal, then xlPrecision is of course unable to return a correct value and instead returns "#VALUE!". Note, that's a vastly larger number than Excel can return without xlPrecision. Excel itself can only return or recognize a number with no more than 308 digits to the left of the decimal.
Decimal symbols, thousands separators, and currency symbols are all localized. This means that an xlPrecision formula that returns "$1,234,567.89" in the USA will return "1.234.567,89 €" in Germany, "1 234 567,89 €" in France, "1 234 567.89 kr" in Estonia, and "1.234.567,89Lek" in Albania.
The 32,767 SD edition can only provide a maximum of 32,767 total characters, including all formatting characters such as decimal, leading hyphen or parentheses for negatives, and thousands separators. As a result, it can only return the maximum 32,767 significant digits when the result is an unformatted positive integer. This is due to Excel's limitation of 32,767 characters in a cell. In all cases, the 32,767 SD edition will give you as many significant digits as possible with the formatting you have chosen.
Depending on how many significant digits the edition of xlPrecision provides, the result may be too long to conveniently view. You can view the full result by right-clicking the cell and choosing Format Cells | Alignment | Wrap Text, and widening the column to the width of the screen. An easy way to view the full result without changing column widths or wrapping text is to right-click the cell, choose Copy, and then paste into Notepad or a word processor.
Examples
| Formula | Description | Result |
| =xlpPOWER(2,3) | 2 ^ 3 | 8 |
| =xlpPOWER(-2,3) | (-2) ^ 3 | -8 |
| =xlpPOWER(2,-3) | 2 ^ (-3) | 0.125 |
| =xlpPOWER(2.5,3) | 2.5 ^ 3 | 15.625 |
| =xlpPOWER(2,3.5) | 2 ^ 3.5 | 11.31370849898476039041351 Length of result depends on xlPrecision SD edition. |
| =xlpPOWER(-2,3.5) | (-2) ^ 3.5 | #NUM! If num is negative and pwr is not an integer, there is no correct solution. See explanation above. |
| =xlpPOWER(1.23,1.23) | 1.23 ^ 1.23 | 1.28998092100128094035512 Length of result depends on xlPrecision SD edition. |
| =xlpPOWER(1.23,-1.23) | 1.23 ^ -1.23 | 0.77520526367459895811456 Length of result depends on xlPrecision SD edition. |
| =xlpPOWER(0.9,0.9) | 0.9 ^ 0.9 | 0.90953257608296218953537 Length of result depends on xlPrecision SD edition. |
| =xlpPOWER(0.9,-0.9) | 0.9 ^ -0.9 | 1.09946584245134932516248 Length of result depends on xlPrecision SD edition. |
|
=xlpPOWER(A1,A2,2,TRUE,TRUE)
Cell A1 = 2 |
A1 ^ A2, formatted with parentheses (if negative), thousands separators, and currency symbol. | |
|
=xlpPOWER(A1,A2,,,,TRUE,100)
Cell A1 = 2 |
A1 ^ A2, formatting in exponential notation and restricting the significant digits to a maximum of 100 to get faster calculation performance. | |