@@ 1112-1131 (lines=20) @@ | ||
1109 | * |
|
1110 | * @return float |
|
1111 | */ |
|
1112 | public static function DOLLARDE($fractional_dollar = null, $fraction = 0) |
|
1113 | { |
|
1114 | $fractional_dollar = Functions::flattenSingleValue($fractional_dollar); |
|
1115 | $fraction = (int) Functions::flattenSingleValue($fraction); |
|
1116 | ||
1117 | // Validate parameters |
|
1118 | if ($fractional_dollar === null || $fraction < 0) { |
|
1119 | return Functions::NAN(); |
|
1120 | } |
|
1121 | if ($fraction == 0) { |
|
1122 | return Functions::DIV0(); |
|
1123 | } |
|
1124 | ||
1125 | $dollars = floor($fractional_dollar); |
|
1126 | $cents = fmod($fractional_dollar, 1); |
|
1127 | $cents /= $fraction; |
|
1128 | $cents *= pow(10, ceil(log10($fraction))); |
|
1129 | ||
1130 | return $dollars + $cents; |
|
1131 | } |
|
1132 | ||
1133 | /** |
|
1134 | * DOLLARFR. |
|
@@ 1150-1169 (lines=20) @@ | ||
1147 | * |
|
1148 | * @return float |
|
1149 | */ |
|
1150 | public static function DOLLARFR($decimal_dollar = null, $fraction = 0) |
|
1151 | { |
|
1152 | $decimal_dollar = Functions::flattenSingleValue($decimal_dollar); |
|
1153 | $fraction = (int) Functions::flattenSingleValue($fraction); |
|
1154 | ||
1155 | // Validate parameters |
|
1156 | if ($decimal_dollar === null || $fraction < 0) { |
|
1157 | return Functions::NAN(); |
|
1158 | } |
|
1159 | if ($fraction == 0) { |
|
1160 | return Functions::DIV0(); |
|
1161 | } |
|
1162 | ||
1163 | $dollars = floor($decimal_dollar); |
|
1164 | $cents = fmod($decimal_dollar, 1); |
|
1165 | $cents *= $fraction; |
|
1166 | $cents *= pow(10, -ceil(log10($fraction))); |
|
1167 | ||
1168 | return $dollars + $cents; |
|
1169 | } |
|
1170 | ||
1171 | /** |
|
1172 | * EFFECT. |