| 2251 | } |
| 2252 | |
| 2253 | float Value::asFloat() const { |
| 2254 | switch (type_) { |
| 2255 | case intValue: |
| 2256 | return static_cast<float>(value_.int_); |
| 2257 | case uintValue: |
| 2258 | #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) |
| 2259 | return static_cast<float>(value_.uint_); |
| 2260 | #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) |
| 2261 | return integerToDouble(value_.uint_); |
| 2262 | #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) |
| 2263 | case realValue: |
| 2264 | return static_cast<float>(value_.real_); |
| 2265 | case nullValue: |
| 2266 | return 0.0; |
| 2267 | case booleanValue: |
| 2268 | return value_.bool_ ? 1.0f : 0.0f; |
| 2269 | default: |
| 2270 | break; |
| 2271 | } |
| 2272 | JSON_FAIL_MESSAGE("Value is not convertible to float."); |
| 2273 | } |
| 2274 | |
| 2275 | bool Value::asBool() const { |
| 2276 | switch (type_) { |