FloatIsZero
Description
Test whether a floating-point value is exactly zero.
Parameters
| Name | Direction | Description |
|---|---|---|
value |
in | Float to test |
Usage example (from documentation)
bool zero = FloatIsZero(&value);Success
Returns true when the significand is zero.
Failure
Returns false when the value is non-zero. Cannot fail otherwise.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Io.c:1440:
result = StrInit(alloc);
if (FloatIsZero(value)) {
if (value->negative) {
if (!StrPushBackR(&result, '-')) {- In
Float.c:187:
ValidateFloat(value);
if (FloatIsZero(value)) {
value->exponent = target_exponent;
return true;- In
Float.c:225:
}
if (FloatIsZero(lhs) && FloatIsZero(rhs)) {
*out = 0;
return true;- In
Float.c:269:
}
bool FloatIsZero(const Float *value) {
ValidateFloat(value);
return IntIsZero(&value->significand);- In
Float.c:276:
bool FloatIsNegative(const Float *value) {
ValidateFloat(value);
return !FloatIsZero(value) && value->negative;
}- In
Float.c:416:
}
if (FloatIsZero(value)) {
IntDeinit(result);
*result = temp;- In
Float.c:619:
*out = StrInit(alloc);
if (FloatIsZero(value)) {
return StrPushBackR(out, '0');
}- In
Float.c:713:
ValidateFloat(rhs);
if (FloatIsZero(lhs) && FloatIsZero(rhs)) {
return 0;
}- In
Float.c:884:
ValidateFloat(value);
if (!FloatIsZero(value)) {
value->negative = !value->negative;
}- In
Float.c:1172:
ValidateFloat(b);
if (FloatIsZero(b)) {
LOG_ERROR("Division by zero");
return false;- In
Float.c:1176:
return false;
}
if (FloatIsZero(a)) {
Float zero = FloatInit(FloatAllocator(result));- In
Float.Type.c:20:
Float value = FloatInit(&alloc.base);
bool result = FloatIsZero(&value);
result = result && !FloatIsNegative(&value);
result = result && (FloatExponent(&value) == 0);- In
Float.Type.c:38:
FloatClear(&value);
bool result = FloatIsZero(&value);
result = result && !FloatIsNegative(&value);
result = result && (FloatExponent(&value) == 0); bool result = !FloatTryFromStr(&value, "12.3.4");
result = result && FloatIsZero(&parsed);
result = result && FloatIsZero(&value);
result = result && FloatIsZero(&parsed);
result = result && FloatIsZero(&value);
FloatDeinit(&parsed); bool result = !FloatTryFromStr(&value, (Zstr)NULL);
result = result && FloatIsZero(&parsed);
result = result && FloatIsZero(&value);
result = result && FloatIsZero(&parsed);
result = result && FloatIsZero(&value);
FloatDeinit(&parsed);- In
Float.Math.c:430:
ok = !FloatDiv(&r, &a, &b, 4);
ok = ok && FloatIsZero(&r);
FloatDeinit(&a);
bool test_float_is_zero(void) {
WriteFmt("Testing FloatIsZero\n");
DefaultAllocator alloc = DefaultAllocatorInit(); Float value = FloatFromStr("0.001", &alloc.base);
bool result = FloatIsZero(&zero);
result = result && !FloatIsZero(&value);
bool result = FloatIsZero(&zero);
result = result && !FloatIsZero(&value);
FloatDeinit(&zero);
Last updated on